diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py new file mode 100644 index 0000000000..1ef1df6a8f --- /dev/null +++ b/InvenTree/InvenTree/api_version.py @@ -0,0 +1,159 @@ +""" +InvenTree API version information +""" + + +# InvenTree API version +INVENTREE_API_VERSION = 43 + +""" +Increment this API version number whenever there is a significant change to the API that any clients need to know about + +v43 -> 2022-04-26 : https://github.com/inventree/InvenTree/pull/2875 + - Adds API detail endpoint for PartSalePrice model + - Adds API detail endpoint for PartInternalPrice model + +v42 -> 2022-04-26 : https://github.com/inventree/InvenTree/pull/2833 + - Adds variant stock information to the Part and BomItem serializers + +v41 -> 2022-04-26 + - Fixes 'variant_of' filter for Part list endpoint + +v40 -> 2022-04-19 + - Adds ability to filter StockItem list by "tracked" parameter + - This checks the serial number or batch code fields + +v39 -> 2022-04-18 + - Adds ability to filter StockItem list by "has_batch" parameter + +v38 -> 2022-04-14 : https://github.com/inventree/InvenTree/pull/2828 + - Adds the ability to include stock test results for "installed items" + +v37 -> 2022-04-07 : https://github.com/inventree/InvenTree/pull/2806 + - Adds extra stock availability information to the BomItem serializer + +v36 -> 2022-04-03 + - Adds ability to filter part list endpoint by unallocated_stock argument + +v35 -> 2022-04-01 : https://github.com/inventree/InvenTree/pull/2797 + - Adds stock allocation information to the Part API + - Adds calculated field for "unallocated_quantity" + +v34 -> 2022-03-25 + - Change permissions for "plugin list" API endpoint (now allows any authenticated user) + +v33 -> 2022-03-24 + - Adds "plugins_enabled" information to root API endpoint + +v32 -> 2022-03-19 + - Adds "parameters" detail to Part API endpoint (use ¶meters=true) + - Adds ability to filter PartParameterTemplate API by Part instance + - Adds ability to filter PartParameterTemplate API by PartCategory instance + +v31 -> 2022-03-14 + - Adds "updated" field to SupplierPriceBreakList and SupplierPriceBreakDetail API endpoints + +v30 -> 2022-03-09 + - Adds "exclude_location" field to BuildAutoAllocation API endpoint + - Allows BuildItem API endpoint to be filtered by BomItem relation + +v29 -> 2022-03-08 + - Adds "scheduling" endpoint for predicted stock scheduling information + +v28 -> 2022-03-04 + - Adds an API endpoint for auto allocation of stock items against a build order + - Ref: https://github.com/inventree/InvenTree/pull/2713 + +v27 -> 2022-02-28 + - Adds target_date field to individual line items for purchase orders and sales orders + +v26 -> 2022-02-17 + - Adds API endpoint for uploading a BOM file and extracting data + +v25 -> 2022-02-17 + - Adds ability to filter "part" list endpoint by "in_bom_for" argument + +v24 -> 2022-02-10 + - Adds API endpoint for deleting (cancelling) build order outputs + +v23 -> 2022-02-02 + - Adds API endpoints for managing plugin classes + - Adds API endpoints for managing plugin settings + +v22 -> 2021-12-20 + - Adds API endpoint to "merge" multiple stock items + +v21 -> 2021-12-04 + - Adds support for multiple "Shipments" against a SalesOrder + - Refactors process for stock allocation against a SalesOrder + +v20 -> 2021-12-03 + - Adds ability to filter POLineItem endpoint by "base_part" + - Adds optional "order_detail" to POLineItem list endpoint + +v19 -> 2021-12-02 + - Adds the ability to filter the StockItem API by "part_tree" + - Returns only stock items which match a particular part.tree_id field + +v18 -> 2021-11-15 + - Adds the ability to filter BomItem API by "uses" field + - This returns a list of all BomItems which "use" the specified part + - Includes inherited BomItem objects + +v17 -> 2021-11-09 + - Adds API endpoints for GLOBAL and USER settings objects + - Ref: https://github.com/inventree/InvenTree/pull/2275 + +v16 -> 2021-10-17 + - Adds API endpoint for completing build order outputs + +v15 -> 2021-10-06 + - Adds detail endpoint for SalesOrderAllocation model + - Allows use of the API forms interface for adjusting SalesOrderAllocation objects + +v14 -> 2021-10-05 + - Stock adjustment actions API is improved, using native DRF serializer support + - However adjustment actions now only support 'pk' as a lookup field + +v13 -> 2021-10-05 + - Adds API endpoint to allocate stock items against a BuildOrder + - Updates StockItem API with improved filtering against BomItem data + +v12 -> 2021-09-07 + - Adds API endpoint to receive stock items against a PurchaseOrder + +v11 -> 2021-08-26 + - Adds "units" field to PartBriefSerializer + - This allows units to be introspected from the "part_detail" field in the StockItem serializer + +v10 -> 2021-08-23 + - Adds "purchase_price_currency" to StockItem serializer + - Adds "purchase_price_string" to StockItem serializer + - Purchase price is now writable for StockItem serializer + +v9 -> 2021-08-09 + - Adds "price_string" to part pricing serializers + +v8 -> 2021-07-19 + - Refactors the API interface for SupplierPart and ManufacturerPart models + - ManufacturerPart objects can no longer be created via the SupplierPart API endpoint + +v7 -> 2021-07-03 + - Introduced the concept of "API forms" in https://github.com/inventree/InvenTree/pull/1716 + - API OPTIONS endpoints provide comprehensive field metedata + - Multiple new API endpoints added for database models + +v6 -> 2021-06-23 + - Part and Company images can now be directly uploaded via the REST API + +v5 -> 2021-06-21 + - Adds API interface for manufacturer part parameters + +v4 -> 2021-06-01 + - BOM items can now accept "variant stock" to be assigned against them + - Many slight API tweaks were needed to get this to work properly! + +v3 -> 2021-05-22: + - The updated StockItem "history tracking" now uses a different interface + +""" diff --git a/InvenTree/InvenTree/forms.py b/InvenTree/InvenTree/forms.py index 02b993d31b..91863f04e2 100644 --- a/InvenTree/InvenTree/forms.py +++ b/InvenTree/InvenTree/forms.py @@ -150,13 +150,13 @@ class DeleteForm(forms.Form): class EditUserForm(HelperForm): - """ Form for editing user information + """ + Form for editing user information """ class Meta: model = User fields = [ - 'username', 'first_name', 'last_name', ] diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index c5a8ad4b67..7bd4fd819d 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -427,8 +427,9 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): serials = serials.strip() # fill in the next serial number into the serial - if '~' in serials: - serials = serials.replace('~', str(next_number)) + while '~' in serials: + serials = serials.replace('~', str(next_number), 1) + next_number += 1 # Split input string by whitespace or comma (,) characters groups = re.split("[\s,]+", serials) @@ -438,6 +439,12 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): # Helper function to check for duplicated numbers def add_sn(sn): + # Attempt integer conversion first, so numerical strings are never stored + try: + sn = int(sn) + except ValueError: + pass + if sn in numbers: errors.append(_('Duplicate serial: {sn}').format(sn=sn)) else: @@ -451,15 +458,25 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): if len(serials) == 0: raise ValidationError([_("Empty serial number string")]) - for group in groups: + # If the user has supplied the correct number of serials, don't process them for groups + # just add them so any duplicates (or future validations) are checked + if len(groups) == expected_quantity: + for group in groups: + add_sn(group) + if len(errors) > 0: + raise ValidationError(errors) + + return numbers + + for group in groups: group = group.strip() # Hyphen indicates a range of numbers if '-' in group: items = group.split('-') - if len(items) == 2: + if len(items) == 2 and all([i.isnumeric() for i in items]): a = items[0].strip() b = items[1].strip() @@ -471,13 +488,14 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): for n in range(a, b + 1): add_sn(n) else: - errors.append(_("Invalid group: {g}").format(g=group)) + errors.append(_("Invalid group range: {g}").format(g=group)) except ValueError: errors.append(_("Invalid group: {g}").format(g=group)) continue else: - errors.append(_("Invalid group: {g}").format(g=group)) + # More than 2 hyphens or non-numeric group so add without interpolating + add_sn(group) # plus signals either # 1: 'start+': expected number of serials, starting at start @@ -495,23 +513,17 @@ def extract_serial_numbers(serials, expected_quantity, next_number: int): # case 1 else: - end = start + expected_quantity + end = start + (expected_quantity - len(numbers)) for n in range(start, end): add_sn(n) # no case else: - errors.append(_("Invalid group: {g}").format(g=group)) + errors.append(_("Invalid group sequence: {g}").format(g=group)) # At this point, we assume that the "group" is just a single serial value elif group: - - try: - # First attempt to add as an integer value - add_sn(int(group)) - except (ValueError): - # As a backup, add as a string value - add_sn(group) + add_sn(group) # No valid input group detected else: diff --git a/InvenTree/InvenTree/middleware.py b/InvenTree/InvenTree/middleware.py index a9c43c71b6..b43720b8bc 100644 --- a/InvenTree/InvenTree/middleware.py +++ b/InvenTree/InvenTree/middleware.py @@ -1,11 +1,11 @@ from django.shortcuts import HttpResponseRedirect from django.urls import reverse_lazy, Resolver404 -from django.db import connection from django.shortcuts import redirect from django.conf.urls import include, url +from django.conf import settings +from django.contrib.auth.middleware import PersistentRemoteUserMiddleware + import logging -import time -import operator from rest_framework.authtoken.models import Token from allauth_2fa.middleware import BaseRequire2FAMiddleware, AllauthTwoFactorMiddleware @@ -92,67 +92,6 @@ class AuthRequiredMiddleware(object): return response -class QueryCountMiddleware(object): - """ - This middleware will log the number of queries run - and the total time taken for each request (with a - status code of 200). It does not currently support - multi-db setups. - - To enable this middleware, set 'log_queries: True' in the local InvenTree config file. - - Reference: https://www.dabapps.com/blog/logging-sql-queries-django-13/ - - Note: 2020-08-15 - This is no longer used, instead we now rely on the django-debug-toolbar addon - """ - - def __init__(self, get_response): - self.get_response = get_response - - def __call__(self, request): - - t_start = time.time() - response = self.get_response(request) - t_stop = time.time() - - if response.status_code == 200: - total_time = 0 - - if len(connection.queries) > 0: - - queries = {} - - for query in connection.queries: - query_time = query.get('time') - - sql = query.get('sql').split('.')[0] - - if sql in queries: - queries[sql] += 1 - else: - queries[sql] = 1 - - if query_time is None: - # django-debug-toolbar monkeypatches the connection - # cursor wrapper and adds extra information in each - # item in connection.queries. The query time is stored - # under the key "duration" rather than "time" and is - # in milliseconds, not seconds. - query_time = float(query.get('duration', 0)) - - total_time += float(query_time) - - logger.debug('{n} queries run, {a:.3f}s / {b:.3f}s'.format( - n=len(connection.queries), - a=total_time, - b=(t_stop - t_start))) - - for x in sorted(queries.items(), key=operator.itemgetter(1), reverse=True): - print(x[0], ':', x[1]) - - return response - - url_matcher = url('', include(frontendpatterns)) @@ -176,3 +115,16 @@ class CustomAllauthTwoFactorMiddleware(AllauthTwoFactorMiddleware): super().process_request(request) except Resolver404: pass + + +class InvenTreeRemoteUserMiddleware(PersistentRemoteUserMiddleware): + """ + Middleware to check if HTTP-header based auth is enabled and to set it up + """ + header = settings.REMOTE_LOGIN_HEADER + + def process_request(self, request): + if not settings.REMOTE_LOGIN: + return + + return super().process_request(request) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 74a4d4a71f..5d0aea35e3 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -25,6 +25,7 @@ import moneyed import yaml from django.utils.translation import gettext_lazy as _ from django.contrib.messages import constants as messages +from django.core.files.storage import default_storage import django.conf.locale from .config import get_base_dir, get_config_file, get_plugin_file, get_setting @@ -61,12 +62,6 @@ DEBUG = _is_true(get_setting( CONFIG.get('debug', True) )) -# Determine if we are running in "demo mode" -DEMO_MODE = _is_true(get_setting( - 'INVENTREE_DEMO', - CONFIG.get('demo', False) -)) - DOCKER = _is_true(get_setting( 'INVENTREE_DOCKER', False @@ -216,9 +211,6 @@ MEDIA_URL = '/media/' if DEBUG: logger.info("InvenTree running with DEBUG enabled") -if DEMO_MODE: - logger.warning("InvenTree running in DEMO mode") # pragma: no cover - logger.debug(f"MEDIA_ROOT: '{MEDIA_ROOT}'") logger.debug(f"STATIC_ROOT: '{STATIC_ROOT}'") @@ -282,12 +274,14 @@ INSTALLED_APPS = [ MIDDLEWARE = CONFIG.get('middleware', [ 'django.middleware.security.SecurityMiddleware', + 'x_forwarded_for.middleware.XForwardedForMiddleware', 'user_sessions.middleware.SessionMiddleware', # db user sessions 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'InvenTree.middleware.InvenTreeRemoteUserMiddleware', # Remote / proxy auth 'django_otp.middleware.OTPMiddleware', # MFA support 'InvenTree.middleware.CustomAllauthTwoFactorMiddleware', # Flow control for allauth 'django.contrib.messages.middleware.MessageMiddleware', @@ -301,6 +295,7 @@ MIDDLEWARE = CONFIG.get('middleware', [ MIDDLEWARE.append('error_report.middleware.ExceptionProcessor') AUTHENTICATION_BACKENDS = CONFIG.get('authentication_backends', [ + 'django.contrib.auth.backends.RemoteUserBackend', # proxy login 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend', # SSO login via external providers ]) @@ -549,11 +544,19 @@ if "sqlite" in db_engine: # Provide OPTIONS dict back to the database configuration dict db_config['OPTIONS'] = db_options +# Set testing options for the database +db_config['TEST'] = { + 'CHARSET': 'utf8', +} + +# Set collation option for mysql test database +if 'mysql' in db_engine: + db_config['TEST']['COLLATION'] = 'utf8_general_ci' + DATABASES = { 'default': db_config } - _cache_config = CONFIG.get("cache", {}) _cache_host = _cache_config.get("host", os.getenv("INVENTREE_CACHE_HOST")) _cache_port = _cache_config.get( @@ -666,11 +669,13 @@ LANGUAGE_CODE = CONFIG.get('language', 'en-us') # If a new language translation is supported, it must be added here LANGUAGES = [ + ('cs', _('Czech')), ('de', _('German')), ('el', _('Greek')), ('en', _('English')), ('es', _('Spanish')), ('es-mx', _('Spanish (Mexican)')), + ('fa', _('Farsi / Persian')), ('fr', _('French')), ('he', _('Hebrew')), ('hu', _('Hungarian')), @@ -680,7 +685,8 @@ LANGUAGES = [ ('nl', _('Dutch')), ('no', _('Norwegian')), ('pl', _('Polish')), - ('pt', _('Portugese')), + ('pt', _('Portuguese')), + ('pt-BR', _('Portuguese (Brazilian)')), ('ru', _('Russian')), ('sv', _('Swedish')), ('th', _('Thai')), @@ -846,6 +852,10 @@ ACCOUNT_FORMS = { SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter' ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter' +# login settings +REMOTE_LOGIN = get_setting('INVENTREE_REMOTE_LOGIN', CONFIG.get('remote_login', False)) +REMOTE_LOGIN_HEADER = get_setting('INVENTREE_REMOTE_LOGIN_HEADER', CONFIG.get('remote_login_header', 'REMOTE_USER')) + # Markdownx configuration # Ref: https://neutronx.github.io/django-markdownx/customization/ MARKDOWNX_MEDIA_PATH = datetime.now().strftime('markdownx/%Y/%m/%d') @@ -905,3 +915,20 @@ PLUGIN_TESTING = get_setting('PLUGIN_TESTING', TESTING) # are plugins beeing te PLUGIN_TESTING_SETUP = get_setting('PLUGIN_TESTING_SETUP', False) # load plugins from setup hooks in testing? PLUGIN_RETRY = get_setting('PLUGIN_RETRY', 5) # how often should plugin loading be tried? PLUGIN_FILE_CHECKED = False # Was the plugin file checked? + +# User interface customization values +CUSTOMIZE = get_setting( + 'INVENTREE_CUSTOMIZE', + CONFIG.get('customize', {}), + {} +) + +CUSTOM_LOGO = get_setting( + 'INVENTREE_CUSTOM_LOGO', + CUSTOMIZE.get('logo', False) +) + +# check that the logo-file exsists in media +if CUSTOM_LOGO and not default_storage.exists(CUSTOM_LOGO): + CUSTOM_LOGO = False + logger.warning("The custom logo file could not be found in the default media storage") diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index 3f6fffe19b..4abba23b09 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -1018,4 +1018,33 @@ input[type='number']{ a { text-decoration: none; background-color: transparent; +} + +/* Quicksearch Panel */ + +.search-result-panel { + max-width: 800px; + width: 75% +} + +.search-result-group { + padding: 5px; + padding-left: 10px; + padding-right: 10px; + border: 1px solid var(--border-color); + margin-bottom: 10px; +} + +.search-result-group-buttons > button{ + padding: 2px; + padding-left: 5px; + padding-right: 5px; + font-size: 80%; +} + +.search-result-entry { + border-top: 1px solid var(--border-color); + padding: 3px; + margin-top: 3px; + overflow: hidden; } \ No newline at end of file diff --git a/InvenTree/InvenTree/static/easymde/easymde.min.css b/InvenTree/InvenTree/static/easymde/easymde.min.css new file mode 100644 index 0000000000..884f9eed9d --- /dev/null +++ b/InvenTree/InvenTree/static/easymde/easymde.min.css @@ -0,0 +1,7 @@ +/** + * easymde v2.16.1 + * Copyright Jeroen Akkerman + * @link https://github.com/ionaru/easy-markdown-editor + * @license MIT + */ +.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:0}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{box-sizing:border-box;height:auto;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:0;word-wrap:break-word}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:8;border-right:none!important;border-bottom-right-radius:0!important}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-right:none!important;border-bottom-right-radius:0;position:relative;flex:1 1 auto}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:9px 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar.fullscreen{width:100%;height:50px;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-moz-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#fff),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);position:fixed;top:0;right:0;margin:0;padding:0}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;display:inline-block;text-align:center;text-decoration:none!important;height:30px;margin:0;padding:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar button{width:30px}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar button:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"▲"}.editor-toolbar button.heading-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview-full{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7;overflow:auto;display:none;box-sizing:border-box}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;overflow:auto;display:none;box-sizing:border-box;border:1px solid #ddd;word-wrap:break-word}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{padding:10px;background:#fafafa}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:200%;line-height:200%}.cm-s-easymde .cm-header-2{font-size:160%;line-height:160%}.cm-s-easymde .cm-header-3{font-size:125%;line-height:125%}.cm-s-easymde .cm-header-4{font-size:110%;line-height:110%}.cm-s-easymde .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{position:relative;background:linear-gradient(to bottom right,#fff 0,#fff 84%,#333 50%,#333 100%);border-radius:0;border:1px solid #fff}.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff 0,#fff 84%,#333 50%,#333 100%)}.easymde-dropdown-content{display:block;visibility:hidden;position:absolute;background-color:#f9f9f9;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);padding:8px;z-index:2;top:30px}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}span[data-img-src]::after{content:'';background-image:var(--bg-image);display:block;max-height:100%;max-width:100%;background-size:contain;height:0;padding-top:var(--height);width:var(--width);background-repeat:no-repeat}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)} \ No newline at end of file diff --git a/InvenTree/InvenTree/static/easymde/easymde.min.js b/InvenTree/InvenTree/static/easymde/easymde.min.js new file mode 100644 index 0000000000..56a8d3a69a --- /dev/null +++ b/InvenTree/InvenTree/static/easymde/easymde.min.js @@ -0,0 +1,7 @@ +/** + * easymde v2.16.1 + * Copyright Jeroen Akkerman + * @link https://github.com/ionaru/easy-markdown-editor + * @license MIT + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EasyMDE=e()}}((function(){return function e(t,n,r){function i(a,l){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!l&&s)return s(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[a]={exports:{}};t[a][0].call(c.exports,(function(e){return i(t[a][1][e]||e)}),c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,n=/^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,r=/[*+-]\s/;function i(e,n){var r=n.line,i=0,o=0,a=t.exec(e.getLine(r)),l=a[1];do{var s=r+(i+=1),u=e.getLine(s),c=t.exec(u);if(c){var d=c[1],h=parseInt(a[3],10)+i-o,f=parseInt(c[3],10),p=f;if(l!==d||isNaN(f)){if(l.length>d.length)return;if(l.lengthf&&(p=h+1),e.replaceRange(u.replace(t,d+p+c[4]+c[5]),{line:s,ch:0},{line:s,ch:u.length})}}while(c)}e.commands.newlineAndIndentContinueMarkdownList=function(o){if(o.getOption("disableInput"))return e.Pass;for(var a=o.listSelections(),l=[],s=0;s\s*$/.test(p),x=!/>\s*$/.test(p);(v||x)&&o.replaceRange("",{line:u.line,ch:0},{line:u.line,ch:u.ch+1}),l[s]="\n"}else{var y=m[1],b=m[5],D=!(r.test(m[2])||m[2].indexOf(">")>=0),C=D?parseInt(m[3],10)+1+m[4]:m[2].replace("x"," ");l[s]="\n"+y+C+b,D&&i(o,u)}}o.replaceSelections(l)}})("object"==typeof n&&"object"==typeof t?e("../../lib/codemirror"):CodeMirror)},{"../../lib/codemirror":10}],7:[function(e,t,n){(function(e){"use strict";e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos)c);d++){var h=e.getLine(u++);l=null==l?h:l+"\n"+h}s*=2,t.lastIndex=n.ch;var f=t.exec(l);if(f){var p=l.slice(0,f.index).split("\n"),m=f[0].split("\n"),g=n.line+p.length-1,v=p[p.length-1].length;return{from:r(g,v),to:r(g+m.length-1,1==m.length?v+m[0].length:m[m.length-1].length),match:f}}}}function s(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var o=t.exec(e);if(!o)break;var a=o.index+o[0].length;if(a>e.length-n)break;(!r||a>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function u(e,t,n){t=i(t,"g");for(var o=n.line,a=n.ch,l=e.firstLine();o>=l;o--,a=-1){var u=e.getLine(o),c=s(u,t,a<0?0:u.length-a);if(c)return{from:r(o,c.index),to:r(o,c.index+c[0].length),match:c}}}function c(e,t,n){if(!o(t))return u(e,t,n);t=i(t,"gm");for(var a,l=1,c=e.getLine(n.line).length-n.ch,d=n.line,h=e.firstLine();d>=h;){for(var f=0;f=h;f++){var p=e.getLine(d--);a=null==a?p:p+"\n"+a}l*=2;var m=s(a,t,c);if(m){var g=a.slice(0,m.index).split("\n"),v=m[0].split("\n"),x=d+g.length,y=g[g.length-1].length;return{from:r(x,y),to:r(x+v.length-1,1==v.length?y+v[0].length:v[v.length-1].length),match:m}}}}function d(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,l=r(e.slice(0,a)).length;if(l==n)return a;l>n?o=a:i=a+1}}function h(e,i,o,a){if(!i.length)return null;var l=a?t:n,s=l(i).split(/\r|\n\r?/);e:for(var u=o.line,c=o.ch,h=e.lastLine()+1-s.length;u<=h;u++,c=0){var f=e.getLine(u).slice(c),p=l(f);if(1==s.length){var m=p.indexOf(s[0]);if(-1==m)continue e;return o=d(f,p,m,l)+c,{from:r(u,d(f,p,m,l)+c),to:r(u,d(f,p,m+s[0].length,l)+c)}}var g=p.length-s[0].length;if(p.slice(g)==s[0]){for(var v=1;v=h;u--,c=-1){var f=e.getLine(u);c>-1&&(f=f.slice(0,c));var p=l(f);if(1==s.length){var m=p.lastIndexOf(s[0]);if(-1==m)continue e;return{from:r(u,d(f,p,m,l)),to:r(u,d(f,p,m+s[0].length,l))}}var g=s[s.length-1];if(p.slice(0,g.length)==g){var v=1;for(o=u-s.length+1;v(this.doc.getLine(n.line)||"").length&&(n.ch=0,n.line++)),0!=e.cmpPos(n,this.doc.clipPos(n))))return this.atOccurrence=!1;var i=this.matches(t,n);if(this.afterEmptyMatch=i&&0==e.cmpPos(i.from,i.to),i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var o=r(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:o,to:o},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,n),this.pos.to=r(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",(function(e,t,n){return new p(this.doc,e,t,n)})),e.defineDocExtension("getSearchCursor",(function(e,t,n){return new p(this,e,t,n)})),e.defineExtension("selectMatches",(function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)}))})("object"==typeof n&&"object"==typeof t?e("../../lib/codemirror"):CodeMirror)},{"../../lib/codemirror":10}],9:[function(e,t,n){(function(e){"use strict";function t(e){e.state.markedSelection&&e.operation((function(){!function(e){if(!e.somethingSelected())return a(e);if(e.listSelections().length>1)return l(e);var t=e.getCursor("start"),n=e.getCursor("end"),r=e.state.markedSelection;if(!r.length)return o(e,t,n);var s=r[0].find(),u=r[r.length-1].find();if(!s||!u||n.line-t.line<=8||i(t,u.to)>=0||i(n,s.from)<=0)return l(e);for(;i(t,s.from)>0;)r.shift().clear(),s=r[0].find();for(i(t,s.from)<0&&(s.to.line-t.line<8?(r.shift().clear(),o(e,t,s.to,0)):o(e,t,s.from,0));i(n,u.to)<0;)r.pop().clear(),u=r[r.length-1].find();i(n,u.to)>0&&(n.line-u.from.line<8?(r.pop().clear(),o(e,u.from,n)):o(e,u.to,n))}(e)}))}function n(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation((function(){a(e)}))}e.defineOption("styleSelectedText",!1,(function(r,i,o){var s=o&&o!=e.Init;i&&!s?(r.state.markedSelection=[],r.state.markedSelectionStyle="string"==typeof i?i:"CodeMirror-selectedtext",l(r),r.on("cursorActivity",t),r.on("change",n)):!i&&s&&(r.off("cursorActivity",t),r.off("change",n),a(r),r.state.markedSelection=r.state.markedSelectionStyle=null)}));var r=e.Pos,i=e.cmpPos;function o(e,t,n,o){if(0!=i(t,n))for(var a=e.state.markedSelection,l=e.state.markedSelectionStyle,s=t.line;;){var u=s==t.line?t:r(s,0),c=s+8,d=c>=n.line,h=d?n:r(c,0),f=e.markText(u,h,{className:l});if(null==o?a.push(f):a.splice(o++,0,f),d)break;s=c}}function a(e){for(var t=e.state.markedSelection,n=0;n2),g=/Android/.test(e),v=m||g||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),x=m||/Mac/.test(t),y=/\bCrOS\b/.test(e),b=/win/i.test(t),D=d&&e.match(/Version\/(\d*\.\d*)/);D&&(D=Number(D[1])),D&&D>=15&&(d=!1,s=!0);var C=x&&(u||d&&(null==D||D<12.11)),w=n||a&&l>=9;function k(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var S,F=function(e,t){var n=e.className,r=k(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function A(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function E(e,t){return A(e).appendChild(t)}function T(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=l-o,a+=n-a%n,o=l+1}}m?I=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(I=function(e){try{e.select()}catch(e){}});var P=function(){this.id=null,this.f=null,this.time=0,this.handler=z(this.onTimeout,this)};function _(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var G=[""];function V(e){for(;G.length<=e;)G.push(X(G)+" ");return G[e]}function X(e){return e[e.length-1]}function K(e,t){for(var n=[],r=0;r"€"&&(e.toUpperCase()!=e.toLowerCase()||Q.test(e))}function ee(e,t){return t?!!(t.source.indexOf("\\w")>-1&&J(e))||t.test(e):J(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function re(e){return e.charCodeAt(0)>=768&&ne.test(e)}function ie(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}var ae=null;function le(e,t,n){var r;ae=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:ae=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:ae=i)}return null!=r?r:ae}var se=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,n=/[LRr]/,r=/[Lb1n]/,i=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(a,l){var s="ltr"==l?"L":"R";if(0==a.length||"ltr"==l&&!e.test(a))return!1;for(var u,c=a.length,d=[],h=0;h-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var n=he(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function xe(e){e.prototype.on=function(e,t){de(this,e,t)},e.prototype.off=function(e,t){fe(this,e,t)}}function ye(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function De(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ce(e){ye(e),be(e)}function we(e){return e.target||e.srcElement}function ke(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),x&&e.ctrlKey&&1==t&&(t=3),t}var Se,Fe,Ae=function(){if(a&&l<9)return!1;var e=T("div");return"draggable"in e||"dragDrop"in e}();function Ee(e){if(null==Se){var t=T("span","​");E(e,T("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Se=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&l<8))}var n=Se?T("span","​"):T("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Te(e){if(null!=Fe)return Fe;var t=E(e,document.createTextNode("AخA")),n=S(t,0,1).getBoundingClientRect(),r=S(t,1,2).getBoundingClientRect();return A(e),!(!n||n.left==n.right)&&(Fe=r.right-n.right<3)}var Le,Me=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Be=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ne="oncopy"in(Le=T("div"))||(Le.setAttribute("oncopy","return;"),"function"==typeof Le.oncopy),Oe=null;var Ie={},ze={};function He(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Ie[e]=t}function Re(e){if("string"==typeof e&&ze.hasOwnProperty(e))e=ze[e];else if(e&&"string"==typeof e.name&&ze.hasOwnProperty(e.name)){var t=ze[e.name];"string"==typeof t&&(t={name:t}),(e=Y(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Re("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Re("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Pe(e,t){t=Re(t);var n=Ie[t.name];if(!n)return Pe(e,"text/plain");var r=n(e,t);if(_e.hasOwnProperty(t.name)){var i=_e[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var _e={};function We(e,t){H(t,_e.hasOwnProperty(e)?_e[e]:_e[e]={})}function je(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function qe(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Ue(e,t,n){return!e.startState||e.startState(t,n)}var $e=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Ge(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?et(n,Ge(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?et(e.line,t):n<0?et(e.line,0):e}(t,Ge(e,t.line).text.length)}function st(e,t){for(var n=[],r=0;r=this.string.length},$e.prototype.sol=function(){return this.pos==this.lineStart},$e.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},$e.prototype.next=function(){if(this.post},$e.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},$e.prototype.skipToEnd=function(){this.pos=this.string.length},$e.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},$e.prototype.backUp=function(e){this.pos-=e},$e.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},$e.prototype.current=function(){return this.string.slice(this.start,this.pos)},$e.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},$e.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},$e.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ut=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function dt(e,t,n,r){var i=[e.state.modeGen],o={};bt(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,l=function(r){n.baseTokens=i;var l=e.state.overlays[r],s=1,u=0;n.state=!0,bt(e,t.text,l.mode,n,(function(e,t){for(var n=s;ue&&i.splice(s,1,e,i[s+1],r),s+=2,u=Math.min(e,r)}if(t)if(l.opaque)i.splice(n,s-n,e,"overlay "+t),s=n+2;else for(;ne.options.maxHighlightLength&&je(e.doc.mode,r.state),o=dt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function ft(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new ct(r,!0,t);var o=function(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=Ge(o,l-1),u=s.stateAfter;if(u&&(!n||l+(u instanceof ut?u.lookAhead:0)<=o.modeFrontier))return l;var c=R(s.text,null,e.options.tabSize);(null==i||r>c)&&(i=l-1,r=c)}return i}(e,t,n),a=o>r.first&&Ge(r,o-1).stateAfter,l=a?ct.fromSaved(r,a,o):new ct(r,Ue(r.mode),o);return r.iter(o,t,(function(n){pt(e,n.text,l);var r=l.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,n){return t instanceof ut?new ct(e,je(e.mode,t.state),n,t.lookAhead):new ct(e,je(e.mode,t),n)},ct.prototype.save=function(e){var t=!1!==e?je(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ut(t,this.maxLookAhead):t};var vt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function xt(e,t,n,r){var i,o,a=e.doc,l=a.mode,s=Ge(a,(t=lt(a,t)).line),u=ft(e,t.line,n),c=new $e(s.text,e.options.tabSize,u);for(r&&(o=[]);(r||c.pose.options.maxHighlightLength?(l=!1,a&&pt(e,t,r,d.pos),d.pos=t.length,s=null):s=yt(gt(n,d,r.state,h),o),h){var f=h[0].name;f&&(s="m-"+(s?f+" "+s:f))}if(!l||c!=s){for(;u=t:o.to>t);(r||(r=[])).push(new wt(a,o.from,l?null:o.to))}}return r}(n,i,a),s=function(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&l)for(var y=0;yt)&&(!n||Bt(n,o.marker)<0)&&(n=o.marker)}return n}function Ht(e,t,n,r,i){var o=Ge(e,t),a=Ct&&o.markedSpans;if(a)for(var l=0;l=0&&d<=0||c<=0&&d>=0)&&(c<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?tt(u.to,n)>=0:tt(u.to,n)>0)||c>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?tt(u.from,r)<=0:tt(u.from,r)<0)))return!0}}}function Rt(e){for(var t;t=Ot(e);)e=t.find(-1,!0).line;return e}function Pt(e,t){var n=Ge(e,t),r=Rt(n);return n==r?t:Ze(r)}function _t(e,t){if(t>e.lastLine())return t;var n,r=Ge(e,t);if(!Wt(e,r))return t;for(;n=It(r);)r=n.find(1,!0).line;return Ze(r)+1}function Wt(e,t){var n=Ct&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var Gt=function(e,t,n){this.text=e,Tt(this,t),this.height=n?n(this):1};function Vt(e){e.parent=null,Et(e)}Gt.prototype.lineNo=function(){return Ze(this)},xe(Gt);var Xt={},Kt={};function Zt(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Kt:Xt;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Yt(e,t){var n=L("span",null,null,s?"padding-right: .1px":null),r={pre:L("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=Jt,Te(e.display.measure)&&(a=ue(o,e.doc.direction))&&(r.addToken=en(r.addToken,a)),r.map=[],nn(o,r,ht(e,o,t!=e.display.externalMeasured&&Ze(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=O(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=O(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Ee(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(s){var l=r.content.lastChild;(/\bcm-tab\b/.test(l.className)||l.querySelector&&l.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=O(r.pre.className,r.textClass||"")),r}function Qt(e){var t=T("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Jt(e,t,n,r,i,o,s){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;iu&&d.from<=u);h++);if(d.to>=c)return e(n,r,i,o,a,l,s);e(n,r.slice(0,d.to-u),i,o,null,l,s),o=null,r=r.slice(d.to-u),u=d.to}}}function tn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function nn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,l,s,u,c,d,h,f=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=u=c=l="",h=null,d=null,v=1/0;for(var x=[],y=void 0,b=0;bp||C.collapsed&&D.to==p&&D.from==p)){if(null!=D.to&&D.to!=p&&v>D.to&&(v=D.to,u=""),C.className&&(s+=" "+C.className),C.css&&(l=(l?l+";":"")+C.css),C.startStyle&&D.from==p&&(c+=" "+C.startStyle),C.endStyle&&D.to==v&&(y||(y=[])).push(C.endStyle,D.to),C.title&&((h||(h={})).title=C.title),C.attributes)for(var w in C.attributes)(h||(h={}))[w]=C.attributes[w];C.collapsed&&(!d||Bt(d.marker,C)<0)&&(d=D)}else D.from>p&&v>D.from&&(v=D.from)}if(y)for(var k=0;k=f)break;for(var F=Math.min(f,v);;){if(g){var A=p+g.length;if(!d){var E=A>F?g.slice(0,F-p):g;t.addToken(t,E,a?a+s:s,c,p+E.length==v?u:"",l,h)}if(A>=F){g=g.slice(F-p),p=F;break}p=A,c=""}g=i.slice(o,o=n[m++]),a=Zt(n[m++],t.cm.options)}}else for(var T=1;Tn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function Ln(e,t,n,r){return Nn(e,Bn(e,t),n,r)}function Mn(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&t2&&o.push((s.bottom+u.top)/2-n.top)}}o.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),o=function(e,t,n,r){var i,o=zn(t.map,n,r),s=o.node,u=o.start,c=o.end,d=o.collapse;if(3==s.nodeType){for(var h=0;h<4;h++){for(;u&&re(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,i))}else{var f;u>0&&(d=r="right"),i=e.options.lineWrapping&&(f=s.getClientRects()).length>1?f["right"==r?f.length-1:0]:s.getBoundingClientRect()}if(a&&l<9&&!u&&(!i||!i.left&&!i.right)){var p=s.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+ir(e.display),top:p.top,bottom:p.bottom}:In}for(var m=i.top-t.rect.top,g=i.bottom-t.rect.top,v=(m+g)/2,x=t.view.measure.heights,y=0;yt)&&(i=(o=s-l)-1,t>=s&&(a="right")),null!=i){if(r=e[u+2],l==s&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],a="left";if("right"==n&&i==s-l)for(;u=0&&(n=e[i]).left==n.right;i--);return n}function Rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=r.text.length?(s=r.text.length,u="before"):s<=0&&(s=0,u="after"),!l)return a("before"==u?s-1:s,"before"==u);function c(e,t,n){return a(n?e-1:e,1==l[t].level!=n)}var d=le(l,s,u),h=ae,f=c(s,d,"before"==u);return null!=h&&(f.other=c(s,h,"before"!=u)),f}function Xn(e,t){var n=0;t=lt(e.doc,t),e.options.lineWrapping||(n=ir(e.display)*t.ch);var r=Ge(e.doc,t.line),i=qt(r)+wn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Kn(e,t,n,r,i){var o=et(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function Zn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Kn(r.first,0,null,-1,-1);var i=Ye(r,n),o=r.first+r.size-1;if(i>o)return Kn(r.first+r.size-1,Ge(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=Ge(r,i);;){var l=er(e,a,i,t,n),s=zt(a,l.ch+(l.xRel>0||l.outside>0?1:0));if(!s)return l;var u=s.find(1);if(u.line==i)return u;a=Ge(r,i=u.line)}}function Yn(e,t,n,r){r-=qn(t);var i=t.text.length,o=oe((function(t){return Nn(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=oe((function(t){return Nn(e,n,t).top>r}),o,i)}}function Qn(e,t,n,r){return n||(n=Bn(e,t)),Yn(e,t,n,Un(e,t,Nn(e,n,r),"line").top)}function Jn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function er(e,t,n,r,i){i-=qt(t);var o=Bn(e,t),a=qn(t),l=0,s=t.text.length,u=!0,c=ue(t,e.doc.direction);if(c){var d=(e.options.lineWrapping?nr:tr)(e,t,n,o,c,r,i);l=(u=1!=d.level)?d.from:d.to-1,s=u?d.to:d.from-1}var h,f,p=null,m=null,g=oe((function(t){var n=Nn(e,o,t);return n.top+=a,n.bottom+=a,!!Jn(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=t,m=n),!0)}),l,s),v=!1;if(m){var x=r-m.left=b.bottom?1:0}return Kn(n,g=ie(t.text,g,1),f,v,r-h)}function tr(e,t,n,r,i,o,a){var l=oe((function(l){var s=i[l],u=1!=s.level;return Jn(Vn(e,et(n,u?s.to:s.from,u?"before":"after"),"line",t,r),o,a,!0)}),0,i.length-1),s=i[l];if(l>0){var u=1!=s.level,c=Vn(e,et(n,u?s.from:s.to,u?"after":"before"),"line",t,r);Jn(c,o,a,!0)&&c.top>a&&(s=i[l-1])}return s}function nr(e,t,n,r,i,o,a){var l=Yn(e,t,r,a),s=l.begin,u=l.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,d=null,h=0;h=u||f.to<=s)){var p=Nn(e,r,1!=f.level?Math.min(u,f.to)-1:Math.max(s,f.from)).right,m=pm)&&(c=f,d=m)}}return c||(c=i[i.length-1]),c.fromu&&(c={from:c.from,to:u,level:c.level}),c}function rr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==On){On=T("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)On.appendChild(document.createTextNode("x")),On.appendChild(T("br"));On.appendChild(document.createTextNode("x"))}E(e.measure,On);var n=On.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),A(e.measure),n||1}function ir(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=T("span","xxxxxxxxxx"),n=T("pre",[t],"CodeMirror-line-like");E(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function or(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var l=e.display.gutterSpecs[a].className;n[l]=o.offsetLeft+o.clientLeft+i,r[l]=o.clientWidth}return{fixedPos:ar(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function ar(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function lr(e){var t=rr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/ir(e.display)-3);return function(i){if(Wt(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(s=Ge(e.doc,u.line).text).length==u.ch){var c=R(s,s.length,e.options.tabSize)-s.length;u=et(u.line,Math.max(0,Math.round((o-Sn(e.display).left)/ir(e.display))-c))}return u}function cr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ct&&Pt(e.doc,t)i.viewFrom?fr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)fr(e);else if(t<=i.viewFrom){var o=pr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):fr(e)}else if(n>=i.viewTo){var a=pr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):fr(e)}else{var l=pr(e,t,t,-1),s=pr(e,n,n+r,1);l&&s?(i.view=i.view.slice(0,l.index).concat(on(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=r):fr(e)}var u=i.externalMeasured;u&&(n=i.lineN&&t=r.viewTo)){var o=r.view[cr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==_(a,n)&&a.push(n)}}}function fr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function pr(e,t,n,r){var i,o=cr(e,t),a=e.display.view;if(!Ct||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var l=e.display.viewFrom,s=0;s0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,n+=i}for(;Pt(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function mr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||s.to().line0?a:e.defaultCharWidth())+"px"}if(r.other){var l=n.appendChild(T("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));l.style.display="",l.style.left=r.other.left+"px",l.style.top=r.other.top+"px",l.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function yr(e,t){return e.top-t.top||e.left-t.left}function br(e,t,n){var r=e.display,i=e.doc,o=document.createDocumentFragment(),a=Sn(e.display),l=a.left,s=Math.max(r.sizerWidth,An(e)-r.sizer.offsetLeft)-a.right,u="ltr"==i.direction;function c(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),o.appendChild(T("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?s-e:n)+"px;\n height: "+(r-t)+"px"))}function d(t,n,r){var o,a,d=Ge(i,t),h=d.text.length;function f(n,r){return Gn(e,et(t,n),"div",d,r)}function p(t,n,r){var i=Qn(e,d,null,t),o="ltr"==n==("after"==r)?"left":"right";return f("after"==r?i.begin:i.end-(/\s/.test(d.text.charAt(i.end-1))?2:1),o)[o]}var m=ue(d,i.direction);return function(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,o=0;ot||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}(m,n||0,null==r?h:r,(function(e,t,i,d){var g="ltr"==i,v=f(e,g?"left":"right"),x=f(t-1,g?"right":"left"),y=null==n&&0==e,b=null==r&&t==h,D=0==d,C=!m||d==m.length-1;if(x.top-v.top<=3){var w=(u?b:y)&&C,k=(u?y:b)&&D?l:(g?v:x).left,S=w?s:(g?x:v).right;c(k,v.top,S-k,v.bottom)}else{var F,A,E,T;g?(F=u&&y&&D?l:v.left,A=u?s:p(e,i,"before"),E=u?l:p(t,i,"after"),T=u&&b&&C?s:x.right):(F=u?p(e,i,"before"):l,A=!u&&y&&D?s:v.right,E=!u&&b&&C?l:x.left,T=u?p(t,i,"after"):s),c(F,v.top,A-F,v.bottom),v.bottom0?t.blinker=setInterval((function(){e.hasFocus()||Sr(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Cr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||kr(e))}function wr(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&Sr(e))}),100)}function kr(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,N(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),s&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),Dr(e))}function Sr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,F(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Fr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,o=0,s=0;s.005||m<-.005)&&(ie.display.sizerWidth){var v=Math.ceil(h/ir(e.display));v>e.display.maxLineLength&&(e.display.maxLineLength=v,e.display.maxLine=u.line,e.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(t.scroller.scrollTop+=o)}function Ar(e){if(e.widgets)for(var t=0;t=a&&(o=Ye(t,qt(Ge(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function Tr(e,t){var n=e.display,r=rr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=En(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+kn(n),s=t.topl-r;if(t.topi+o){var c=Math.min(t.top,(u?l:t.bottom)-o);c!=i&&(a.scrollTop=c)}var d=e.options.fixedGutter?0:n.gutters.offsetWidth,h=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-d,f=An(e)-n.gutters.offsetWidth,p=t.right-t.left>f;return p&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.leftf+h-3&&(a.scrollLeft=t.right+(p?0:10)-f),a}function Lr(e,t){null!=t&&(Nr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Mr(e){Nr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Br(e,t,n){null==t&&null==n||Nr(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Nr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Or(e,Xn(e,t.from),Xn(e,t.to),t.margin))}function Or(e,t,n,r){var i=Tr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Br(e,i.scrollLeft,i.scrollTop)}function Ir(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||si(e,{top:t}),zr(e,t,!0),n&&si(e),ri(e,100))}function zr(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Hr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,di(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Rr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+kn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Fn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Pr=function(e,t,n){this.cm=n;var r=this.vert=T("div",[T("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=T("div",[T("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),de(r,"scroll",(function(){r.clientHeight&&t(r.scrollTop,"vertical")})),de(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&l<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Pr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Pr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Pr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Pr.prototype.zeroWidthHack=function(){var e=x&&!f?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new P,this.disableVert=new P},Pr.prototype.enableZeroWidthBar=function(e,t,n){e.style.pointerEvents="auto",t.set(1e3,(function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}))},Pr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var _r=function(){};function Wr(e,t){t||(t=Rr(e));var n=e.display.barWidth,r=e.display.barHeight;jr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Fr(e),jr(e,Rr(e)),n=e.display.barWidth,r=e.display.barHeight}function jr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}_r.prototype.update=function(){return{bottom:0,right:0}},_r.prototype.setScrollLeft=function(){},_r.prototype.setScrollTop=function(){},_r.prototype.clear=function(){};var qr={native:Pr,null:_r};function Ur(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&F(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new qr[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),de(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,n){"horizontal"==n?Hr(e,t):Ir(e,t)}),e),e.display.scrollbars.addClass&&N(e.display.wrapper,e.display.scrollbars.addClass)}var $r=0;function Gr(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++$r,markArrays:null},t=e.curOp,an?an.ops.push(t):t.ownsGroup=an={ops:[t],delayedCallbacks:[]}}function Vr(e){var t=e.curOp;t&&function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new oi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Kr(e){e.updatedDisplay=e.mustUpdate&&ai(e.cm,e.update)}function Zr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Fr(t),e.barMeasure=Rr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Ln(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Fn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-An(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Yr(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft1&&(a=!0)),null!=u.scrollLeft&&(Hr(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}(t,lt(r,e.scrollToPos.from),lt(r,e.scrollToPos.to),e.scrollToPos.margin);!function(e,t){if(!me(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null;if(t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=T("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-wn(e.display))+"px;\n height: "+(t.bottom-t.top+Fn(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,i)}var o=e.maybeHiddenMarkers,a=e.maybeUnhiddenMarkers;if(o)for(var l=0;l=e.display.viewTo)){var n=+new Date+e.options.workTime,r=ft(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength?je(t.mode,r.state):null,s=dt(e,o,r,!0);l&&(r.state=l),o.styles=s.styles;var u=o.styleClasses,c=s.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),h=0;!d&&hn)return ri(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Jr(e,(function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==mr(e))return!1;hi(e)&&(fr(e),t.dims=or(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Ct&&(o=Pt(e.doc,o),a=_t(e.doc,a));var l=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=on(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=on(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,cr(e,n)))),r.viewTo=n}(e,o,a),n.viewOffset=qt(Ge(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=mr(e);if(!l&&0==u&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=B();if(!t||!M(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&M(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return u>4&&(n.lineDiv.style.display="none"),function(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function l(t){var n=t.nextSibling;return s&&x&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var u=r.view,c=r.viewFrom,d=0;d-1&&(f=!1),cn(e,h,c,n)),f&&(A(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(Je(e.options,c)))),a=h.node.nextSibling}else{var p=vn(e,h,c,n);o.insertBefore(p,a)}c+=h.size}for(;a;)a=l(a)}(e,n.updateLineNumbers,t.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=B()&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&M(document.body,e.anchorNode)&&M(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(c),A(n.cursorDiv),A(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,l&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,ri(e,400)),n.updateLineNumbers=null,!0}function li(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=An(e))r&&(t.visible=Er(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+kn(e.display)-En(e),n.top)}),t.visible=Er(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!ai(e,t))break;Fr(e);var i=Rr(e);gr(e),Wr(e,i),ci(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function si(e,t){var n=new oi(e,t);if(ai(e,n)){Fr(e),li(e,n);var r=Rr(e);gr(e),Wr(e,r),ci(e,r),n.finish()}}function ui(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",sn(e,"gutterChanged",e)}function ci(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Fn(e)+"px"}function di(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=ar(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;au.clientWidth,h=u.scrollHeight>u.clientHeight;if(i&&c||o&&h){if(o&&x&&s)e:for(var f=t.target,p=l.view;f!=u;f=f.parentNode)for(var m=0;m=0&&tt(e,r.to())<=0)return n}return-1};var wi=function(e,t){this.anchor=e,this.head=t};function ki(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return tt(e.from(),t.from())})),n=_(t,i);for(var o=1;o0:s>=0){var u=ot(l.from(),a.from()),c=it(l.to(),a.to()),d=l.empty()?a.from()==a.head:l.from()==l.head;o<=n&&--n,t.splice(--o,2,new wi(d?c:u,d?u:c))}}return new Ci(t,n)}function Si(e,t){return new Ci([new wi(e,t||e)],0)}function Fi(e){return e.text?et(e.from.line+e.text.length-1,X(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ai(e,t){if(tt(e,t.from)<0)return e;if(tt(e,t.to)<=0)return Fi(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Fi(t).ch-t.to.ch),et(n,r)}function Ei(e,t){for(var n=[],r=0;r1&&e.remove(l.line+1,p-1),e.insert(l.line+1,v)}sn(e,"change",e,t)}function Oi(e,t,n){!function e(r,i,o){if(r.linked)for(var a=0;al-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Pi(e.done),X(e.done)):e.done.length&&!X(e.done).ranges?X(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),X(e.done)):void 0}(i,i.lastOp==r)))a=X(o.changes),0==tt(t.from,t.to)&&0==tt(t.from,a.to)?a.to=Fi(t):o.changes.push(Ri(e,t));else{var s=X(i.done);for(s&&s.ranges||ji(e.sel,i.done),o={changes:[Ri(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||pe(e,"historyAdded")}function Wi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,X(i.done),t))?i.done[i.done.length-1]=t:ji(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Pi(i.undone)}function ji(e,t){var n=X(t);n&&n.ranges&&n.equals(e)||t.push(e)}function qi(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o}))}function Ui(e){if(!e)return null;for(var t,n=0;n-1&&(X(l)[d]=u[d],delete u[d])}}}return r}function Vi(e,t,n,r){if(r){var i=e.anchor;if(n){var o=tt(t,i)<0;o!=tt(n,i)<0?(i=t,t=n):o!=tt(t,n)<0&&(t=n)}return new wi(i,t)}return new wi(n||t,t)}function Xi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Ji(e,new Ci([Vi(e.sel.primary(),t,n,i)],0),r)}function Ki(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:l.to>t.ch))){if(i&&(pe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(n){var d=s.find(r<0?1:-1),h=void 0;if((r<0?c:u)&&(d=ao(e,d,-r,d&&d.line==t.line?o:null)),d&&d.line==t.line&&(h=tt(d,n))&&(r<0?h<0:h>0))return io(e,d,t,r,i)}var f=s.find(r<0?-1:1);return(r<0?u:c)&&(f=ao(e,f,r,f.line==t.line?o:null)),f?io(e,f,t,r,i):null}}return t}function oo(e,t,n,r,i){var o=r||1,a=io(e,t,n,o,i)||!i&&io(e,t,n,o,!0)||io(e,t,n,-o,i)||!i&&io(e,t,n,-o,!0);return a||(e.cantEdit=!0,et(e.first,0))}function ao(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?lt(e,et(t.line-1)):null:n>0&&t.ch==(r||Ge(e,t.line)).text.length?t.line0)){var c=[s,1],d=tt(u.from,l.from),h=tt(u.to,l.to);(d<0||!a.inclusiveLeft&&!d)&&c.push({from:u.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&c.push({from:l.to,to:u.to}),i.splice.apply(i,c),s+=c.length-3}}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)co(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else co(e,t)}}function co(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to)){var n=Ei(e,t);_i(e,t,n,e.cm?e.cm.curOp.id:NaN),po(e,t,n,Ft(e,t));var r=[];Oi(e,(function(e,n){n||-1!=_(r,e.history)||(xo(e.history,t),r.push(e.history)),po(e,t,null,Ft(e,t))}))}}function ho(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,l="undo"==t?o.done:o.undone,s="undo"==t?o.undone:o.done,u=0;u=0;--f){var p=h(f);if(p)return p.v}}}}function fo(e,t){if(0!=t&&(e.first+=t,e.sel=new Ci(K(e.sel.ranges,(function(e){return new wi(et(e.anchor.line+t,e.anchor.ch),et(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){dr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:et(o,Ge(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ve(e,t.from,t.to),n||(n=Ei(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=Ze(Rt(Ge(r,o.line))),r.iter(s,a.line+1,(function(e){if(e==i.maxLine)return l=!0,!0})));r.sel.contains(t.from,t.to)>-1&&ge(e);Ni(r,t,n,lr(e)),e.options.lineWrapping||(r.iter(s,o.line+t.text.length,(function(e){var t=Ut(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)})),l&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Ge(e,r).stateAfter;if(i&&(!(i instanceof ut)||r+i.lookAhead1||!(this.children[0]instanceof bo))){var l=[];this.collapse(l),this.children=[new bo(l)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,l=a;l10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=L("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Ht(e,t.line,t,n,o)||t.line!=n.line&&Ht(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ct=!0}o.addToHistory&&_i(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,s=t.line,u=e.cm;if(e.iter(s,n.line+1,(function(r){u&&o.collapsed&&!u.options.lineWrapping&&Rt(r)==u.display.maxLine&&(l=!0),o.collapsed&&s!=t.line&&Ke(r,0),function(e,t,n){var r=n&&window.WeakSet&&(n.markedSpans||(n.markedSpans=new WeakSet));r&&r.has(e.markedSpans)?e.markedSpans.push(t):(e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],r&&r.add(e.markedSpans)),t.marker.attachLine(e)}(r,new wt(o,s==t.line?t.ch:null,s==n.line?n.ch:null),e.cm&&e.cm.curOp),++s})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){Wt(e,t)&&Ke(t,0)})),o.clearOnEnter&&de(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(Dt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ko,o.atomic=!0),u){if(l&&(u.curOp.updateMaxLine=!0),o.collapsed)dr(u,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=n.line;c++)hr(u,c,"text");o.atomic&&no(u.doc),sn(u,"markerAdded",u,o)}return o}So.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Gr(e),ve(this,"clear")){var n=this.find();n&&sn(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&dr(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&no(e.doc)),e&&sn(e,"markerCleared",e,this,r,i),t&&Vr(e),this.parent&&this.parent.clear()}},So.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;s--)uo(this,r[s]);l?Qi(this,l):this.cm&&Mr(this.cm)})),undo:ni((function(){ho(this,"undo")})),redo:ni((function(){ho(this,"redo")})),undoSelection:ni((function(){ho(this,"undo",!0)})),redoSelection:ni((function(){ho(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=lt(this,e),t=lt(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var l=0;l=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||n&&!n(s.marker)||r.push(s.marker.parent||s.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n})),lt(this,et(n,t))},indexFromPos:function(e){var t=(e=lt(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var d=e.dataTransfer.getData("Text");if(d){var h;if(t.state.draggingText&&!t.state.draggingText.copy&&(h=t.listSelections()),eo(t.doc,Si(n,n)),h)for(var f=0;f=0;t--)mo(e.doc,"",r[t].from,r[t].to,"+delete");Mr(e)}))}function Qo(e,t,n){var r=ie(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Jo(e,t,n){var r=Qo(e,t.ch,n);return null==r?null:new et(t.line,r,n<0?"after":"before")}function ea(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=ue(n,t.doc.direction);if(o){var a,l=i<0?X(o):o[0],s=i<0==(1==l.level)?"after":"before";if(l.level>0||"rtl"==t.doc.direction){var u=Bn(t,n);a=i<0?n.text.length-1:0;var c=Nn(t,u,a).top;a=oe((function(e){return Nn(t,u,e).top==c}),i<0==(1==l.level)?l.from:l.to-1,a),"before"==s&&(a=Qo(n,a,1))}else a=i<0?l.to:l.from;return new et(r,a,s)}}return new et(r,i<0?n.text.length:0,i<0?"before":"after")}qo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},qo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},qo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},qo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},qo.default=x?qo.macDefault:qo.pcDefault;var ta={selectAll:lo,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),j)},killLine:function(e){return Yo(e,(function(t){if(t.empty()){var n=Ge(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new et(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),et(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Ge(e.doc,i.line-1).text;a&&(i=new et(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),et(i.line-1,a.length-1),i,"+transpose"))}n.push(new wi(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return Jr(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(tt((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(tt(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,u=ei(e,(function(t){s&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:wr(e)),fe(i.wrapper.ownerDocument,"mouseup",u),fe(i.wrapper.ownerDocument,"mousemove",c),fe(i.scroller,"dragstart",d),fe(i.scroller,"drop",u),o||(ye(t),r.addNew||Xi(e.doc,n,null,null,r.extend),s&&!h||a&&9==l?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},d=function(){return o=!0};s&&(i.scroller.draggable=!0);e.state.draggingText=u,u.copy=!r.moveOnDrag,de(i.wrapper.ownerDocument,"mouseup",u),de(i.wrapper.ownerDocument,"mousemove",c),de(i.scroller,"dragstart",d),de(i.scroller,"drop",u),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}(e,r,t,o):function(e,t,n,r){a&&wr(e);var i=e.display,o=e.doc;ye(t);var l,s,u=o.sel,c=u.ranges;r.addNew&&!r.extend?(s=o.sel.contains(n),l=s>-1?c[s]:new wi(n,n)):(l=o.sel.primary(),s=o.sel.primIndex);if("rectangle"==r.unit)r.addNew||(l=new wi(n,n)),n=ur(e,t,!0,!0),s=-1;else{var d=va(e,n,r.unit);l=r.extend?Vi(l,d.anchor,d.head,r.extend):d}r.addNew?-1==s?(s=c.length,Ji(o,ki(e,c.concat([l]),s),{scroll:!1,origin:"*mouse"})):c.length>1&&c[s].empty()&&"char"==r.unit&&!r.extend?(Ji(o,ki(e,c.slice(0,s).concat(c.slice(s+1)),0),{scroll:!1,origin:"*mouse"}),u=o.sel):Zi(o,s,l,q):(s=0,Ji(o,new Ci([l],0),q),u=o.sel);var h=n;function f(t){if(0!=tt(h,t))if(h=t,"rectangle"==r.unit){for(var i=[],a=e.options.tabSize,c=R(Ge(o,n.line).text,n.ch,a),d=R(Ge(o,t.line).text,t.ch,a),f=Math.min(c,d),p=Math.max(c,d),m=Math.min(n.line,t.line),g=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=g;m++){var v=Ge(o,m).text,x=$(v,f,a);f==p?i.push(new wi(et(m,x),et(m,x))):v.length>x&&i.push(new wi(et(m,x),et(m,$(v,p,a))))}i.length||i.push(new wi(n,n)),Ji(o,ki(e,u.ranges.slice(0,s).concat(i),s),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var y,b=l,D=va(e,t,r.unit),C=b.anchor;tt(D.anchor,C)>0?(y=D.head,C=ot(b.from(),D.anchor)):(y=D.anchor,C=it(b.to(),D.head));var w=u.ranges.slice(0);w[s]=function(e,t){var n=t.anchor,r=t.head,i=Ge(e.doc,n.line);if(0==tt(n,r)&&n.sticky==r.sticky)return t;var o=ue(i);if(!o)return t;var a=le(o,n.ch,n.sticky),l=o[a];if(l.from!=n.ch&&l.to!=n.ch)return t;var s,u=a+(l.from==n.ch==(1!=l.level)?0:1);if(0==u||u==o.length)return t;if(r.line!=n.line)s=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=le(o,r.ch,r.sticky),d=c-a||(r.ch-n.ch)*(1==l.level?-1:1);s=c==u-1||c==u?d<0:d>0}var h=o[u+(s?-1:0)],f=s==(1==h.level),p=f?h.from:h.to,m=f?"after":"before";return n.ch==p&&n.sticky==m?t:new wi(new et(n.line,p,m),r)}(e,new wi(lt(o,C),y)),Ji(o,ki(e,w,s),q)}}var p=i.wrapper.getBoundingClientRect(),m=0;function g(t){var n=++m,a=ur(e,t,!0,"rectangle"==r.unit);if(a)if(0!=tt(a,h)){e.curOp.focus=B(),f(a);var l=Er(i,o);(a.line>=l.to||a.linep.bottom?20:0;s&&setTimeout(ei(e,(function(){m==n&&(i.scroller.scrollTop+=s,g(t))})),50)}}function v(t){e.state.selectingText=!1,m=1/0,t&&(ye(t),i.input.focus()),fe(i.wrapper.ownerDocument,"mousemove",x),fe(i.wrapper.ownerDocument,"mouseup",y),o.history.lastSelOrigin=null}var x=ei(e,(function(e){0!==e.buttons&&ke(e)?g(e):v(e)})),y=ei(e,v);e.state.selectingText=y,de(i.wrapper.ownerDocument,"mousemove",x),de(i.wrapper.ownerDocument,"mouseup",y)}(e,r,t,o)}(t,r,o,e):we(e)==n.scroller&&ye(e):2==i?(r&&Xi(t.doc,r),setTimeout((function(){return n.input.focus()}),20)):3==i&&(w?t.display.input.onContextMenu(e):wr(t)))}}function va(e,t,n){if("char"==n)return new wi(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new wi(et(t.line,0),lt(e.doc,et(t.line+1,0)));var r=n(e,t);return new wi(r.from,r.to)}function xa(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&ye(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!ve(e,n))return De(t);o-=l.top-a.viewOffset;for(var s=0;s=i)return pe(e,n,e,Ye(e.doc,o),e.display.gutterSpecs[s].className,t),De(t)}}function ya(e,t){return xa(e,t,"gutterClick",!0)}function ba(e,t){Cn(e.display,t)||function(e,t){if(!ve(e,"gutterContextMenu"))return!1;return xa(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||w||e.display.input.onContextMenu(t)}function Da(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),_n(e)}ma.prototype.compare=function(e,t,n){return this.time+400>e&&0==tt(t,this.pos)&&n==this.button};var Ca={toString:function(){return"CodeMirror.Init"}},wa={},ka={};function Sa(e,t,n){if(!t!=!(n&&n!=Ca)){var r=e.display.dragFunctions,i=t?de:fe;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Fa(e){e.options.lineWrapping?(N(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(F(e.display.wrapper,"CodeMirror-wrap"),$t(e)),sr(e),dr(e),_n(e),setTimeout((function(){return Wr(e)}),100)}function Aa(e,t){var n=this;if(!(this instanceof Aa))return new Aa(e,t);this.options=t=t?H(t):{},H(wa,t,!1);var r=t.value;"string"==typeof r?r=new Mo(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Aa.inputStyles[t.inputStyle](this),o=this.display=new gi(e,r,i,t);for(var u in o.wrapper.CodeMirror=this,Da(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Ur(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new P,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&l<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),function(e){var t=e.display;de(t.scroller,"mousedown",ei(e,ga)),de(t.scroller,"dblclick",a&&l<11?ei(e,(function(t){if(!me(e,t)){var n=ur(e,t);if(n&&!ya(e,t)&&!Cn(e.display,t)){ye(t);var r=e.findWordAt(n);Xi(e.doc,r.anchor,r.head)}}})):function(t){return me(e,t)||ye(t)});de(t.scroller,"contextmenu",(function(t){return ba(e,t)})),de(t.input.getField(),"contextmenu",(function(n){t.scroller.contains(n.target)||ba(e,n)}));var n,r={end:0};function i(){t.activeTouch&&(n=setTimeout((function(){return t.activeTouch=null}),1e3),(r=t.activeTouch).end=+new Date)}function o(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function s(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}de(t.scroller,"touchstart",(function(i){if(!me(e,i)&&!o(i)&&!ya(e,i)){t.input.ensurePolled(),clearTimeout(n);var a=+new Date;t.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),de(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),de(t.scroller,"touchend",(function(n){var r=t.activeTouch;if(r&&!Cn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=e.coordsChar(t.activeTouch,"page");o=!r.prev||s(r,r.prev)?new wi(a,a):!r.prev.prev||s(r,r.prev.prev)?e.findWordAt(a):new wi(et(a.line,0),lt(e.doc,et(a.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),ye(n)}i()})),de(t.scroller,"touchcancel",i),de(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(Ir(e,t.scroller.scrollTop),Hr(e,t.scroller.scrollLeft,!0),pe(e,"scroll",e))})),de(t.scroller,"mousewheel",(function(t){return Di(e,t)})),de(t.scroller,"DOMMouseScroll",(function(t){return Di(e,t)})),de(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){me(e,t)||Ce(t)},over:function(t){me(e,t)||(!function(e,t){var n=ur(e,t);if(n){var r=document.createDocumentFragment();xr(e,n,r),e.display.dragCursor||(e.display.dragCursor=T("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),E(e.display.dragCursor,r)}}(e,t),Ce(t))},start:function(t){return function(e,t){if(a&&(!e.state.draggingText||+new Date-Bo<100))Ce(t);else if(!me(e,t)&&!Cn(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!h)){var n=T("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),d&&n.parentNode.removeChild(n)}}(e,t)},drop:ei(e,No),leave:function(t){me(e,t)||Oo(e)}};var u=t.input.getField();de(u,"keyup",(function(t){return da.call(e,t)})),de(u,"keydown",ei(e,ca)),de(u,"keypress",ei(e,ha)),de(u,"focus",(function(t){return kr(e,t)})),de(u,"blur",(function(t){return Sr(e,t)}))}(this),Ho(),Gr(this),this.curOp.forceUpdate=!0,Ii(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&kr(n)}),20):Sr(this),ka)ka.hasOwnProperty(u)&&ka[u](this,t[u],Ca);hi(this),t.finishInit&&t.finishInit(this);for(var c=0;c150)){if(!r)return;n="prev"}}else u=0,n="not";"prev"==n?u=t>o.first?R(Ge(o,t-1).text,null,a):0:"add"==n?u=s+e.options.indentUnit:"subtract"==n?u=s-e.options.indentUnit:"number"==typeof n&&(u=s+n),u=Math.max(0,u);var d="",h=0;if(e.options.indentWithTabs)for(var f=Math.floor(u/a);f;--f)h+=a,d+="\t";if(ha,s=Me(t),u=null;if(l&&r.ranges.length>1)if(La&&La.text.join("\n")==t){if(r.ranges.length%La.text.length==0){u=[];for(var c=0;c=0;h--){var f=r.ranges[h],p=f.from(),m=f.to();f.empty()&&(n&&n>0?p=et(p.line,p.ch-n):e.state.overwrite&&!l?m=et(m.line,Math.min(Ge(o,m.line).text.length,m.ch+X(s).length)):l&&La&&La.lineWise&&La.text.join("\n")==s.join("\n")&&(p=m=et(p.line,0)));var g={from:p,to:m,text:u?u[h%u.length]:s,origin:i||(l?"paste":e.state.cutIncoming>a?"cut":"+input")};uo(e.doc,g),sn(e,"inputRead",e,g)}t&&!l&&Oa(e,t),Mr(e),e.curOp.updateInput<2&&(e.curOp.updateInput=d),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Na(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Jr(t,(function(){return Ba(t,n,0,null,"paste")})),!0}function Oa(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l-1){a=Ta(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Ge(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ta(e,i.head.line,"smart"));a&&sn(e,"electricInput",e,i.head.line)}}}function Ia(e){for(var t=[],n=[],r=0;r0?0:-1));if(isNaN(c))a=null;else{var d=n>0?c>=55296&&c<56320:c>=56320&&c<57343;a=new et(t.line,Math.max(0,Math.min(l.text.length,t.ch+n*(d?2:1))),-n)}}else a=i?function(e,t,n,r){var i=ue(t,e.doc.direction);if(!i)return Jo(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=le(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&h>=c.begin)){var f=d?"before":"after";return new et(n.line,h,f)}}var p=function(e,t,r){for(var o=function(e,t){return t?new et(n.line,s(e,1),"before"):new et(n.line,e,"after")};e>=0&&e0==(1!=a.level),u=l?r.begin:s(r.end,-1);if(a.from<=u&&u0?c.end:s(c.begin,-1);return null==g||r>0&&g==t.text.length||!(m=p(r>0?0:i.length-1,r,u(g)))?null:m}(e.cm,l,t,n):Jo(l,t,n);if(null==a){if(o||(u=t.line+s)=e.first+e.size||(t=new et(u,t.ch,t.sticky),!(l=Ge(e,u))))return!1;t=ea(i,e.cm,l,t.line,s)}else t=a;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var c=null,d="group"==r,h=e.cm&&e.cm.getHelper(t,"wordChars"),f=!0;!(n<0)||u(!f);f=!1){var p=l.text.charAt(t.ch)||"\n",m=ee(p,h)?"w":d&&"\n"==p?"n":!d||/\s/.test(p)?null:"p";if(!d||f||m||(m="s"),c&&c!=m){n<0&&(n=1,u(),t.sticky="after");break}if(m&&(c=m),n>0&&!u(!f))break}var g=oo(e,t,o,a,!0);return nt(o,g)&&(g.hitSide=!0),g}function Pa(e,t,n,r){var i,o,a=e.doc,l=t.left;if("page"==r){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(s-.5*rr(e.display),3);i=(n>0?t.bottom:t.top)+n*u}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=Zn(e,l,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var _a=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new P,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Wa(e,t){var n=Mn(e,t.line);if(!n||n.hidden)return null;var r=Ge(e.doc,t.line),i=Tn(n,r,t.line),o=ue(r,e.doc.direction),a="left";o&&(a=le(o,t.ch)%2?"right":"left");var l=zn(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function ja(e,t){return t&&(e.bad=!0),e}function qa(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return ja(e.clipPos(et(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&Wa(t,i)||{node:s[0].measure.map[2],offset:0},c=o.liner.firstLine()&&(a=et(a.line-1,Ge(r.doc,a.line-1).length)),l.ch==Ge(r.doc,l.line).text.length&&l.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=cr(r,a.line))?(t=Ze(i.view[0].line),n=i.view[0].node):(t=Ze(i.view[e].line),n=i.view[e-1].node.nextSibling);var s,u,c=cr(r,l.line);if(c==i.view.length-1?(s=i.viewTo-1,u=i.lineDiv.lastChild):(s=Ze(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!n)return!1;for(var d=r.doc.splitLines(function(e,t,n,r,i){var o="",a=!1,l=e.doc.lineSeparator(),s=!1;function u(e){return function(t){return t.id==e}}function c(){a&&(o+=l,s&&(o+=l),a=s=!1)}function d(e){e&&(c(),o+=e)}function h(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void d(n);var o,f=t.getAttribute("cm-marker");if(f){var p=e.findMarks(et(r,0),et(i+1,0),u(+f));return void(p.length&&(o=p[0].find(0))&&d(Ve(e.doc,o.from,o.to).join(l)))}if("false"==t.getAttribute("contenteditable"))return;var m=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;m&&c();for(var g=0;g1&&h.length>1;)if(X(d)==X(h))d.pop(),h.pop(),s--;else{if(d[0]!=h[0])break;d.shift(),h.shift(),t++}for(var f=0,p=0,m=d[0],g=h[0],v=Math.min(m.length,g.length);fa.ch&&x.charCodeAt(x.length-p-1)==y.charCodeAt(y.length-p-1);)f--,p++;d[d.length-1]=x.slice(0,x.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(f).replace(/\u200b+$/,"");var D=et(t,f),C=et(s,h.length?X(h).length-p:0);return d.length>1||d[0]||tt(D,C)?(mo(r.doc,d,D,C,"+input"),!0):void 0},_a.prototype.ensurePolled=function(){this.forceCompositionEnd()},_a.prototype.reset=function(){this.forceCompositionEnd()},_a.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},_a.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},_a.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Jr(this.cm,(function(){return dr(e.cm)}))},_a.prototype.setUneditable=function(e){e.contentEditable="false"},_a.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||ei(this.cm,Ba)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},_a.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},_a.prototype.onContextMenu=function(){},_a.prototype.resetPosition=function(){},_a.prototype.needsContentAttribute=!0;var $a=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new P,this.hasSelection=!1,this.composing=null};$a.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!me(r,e)){if(r.somethingSelected())Ma({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Ia(r);Ma({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,j):(n.prevInput="",i.value=t.text.join("\n"),I(i))}"cut"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),de(i,"input",(function(){a&&l>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),de(i,"paste",(function(e){me(r,e)||Na(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),de(i,"cut",o),de(i,"copy",o),de(e.scroller,"paste",(function(t){if(!Cn(e,t)&&!me(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),de(e.lineSpace,"selectstart",(function(t){Cn(e,t)||ye(t)})),de(i,"compositionstart",(function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}})),de(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},$a.prototype.createField=function(e){this.wrapper=Ha(),this.textarea=this.wrapper.firstChild},$a.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},$a.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=vr(e);if(e.options.moveInputWithCursor){var i=Vn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},$a.prototype.showSelection=function(e){var t=this.cm.display;E(t.cursorDiv,e.cursors),E(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},$a.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&I(this.textarea),a&&l>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",a&&l>=9&&(this.hasSelection=null))}},$a.prototype.getField=function(){return this.textarea},$a.prototype.supportsTouch=function(){return!1},$a.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!v||B()!=this.textarea))try{this.textarea.focus()}catch(e){}},$a.prototype.blur=function(){this.textarea.blur()},$a.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},$a.prototype.receivedFocus=function(){this.slowPoll()},$a.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},$a.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}))},$a.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Be(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&l>=9&&this.hasSelection===i||x&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var s=0,u=Math.min(r.length,i.length);s1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},$a.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},$a.prototype.onKeyPress=function(){a&&l>=9&&(this.hasSelection=null),this.fastPoll()},$a.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=ur(n,e),u=r.scroller.scrollTop;if(o&&!d){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&ei(n,Ji)(n.doc,Si(o),j);var c,h=i.style.cssText,f=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-p.top-5)+"px; left: "+(e.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",s&&(c=window.scrollY),r.input.focus(),s&&window.scrollTo(null,c),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=v,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&l>=9&&g(),w){Ce(e);var m=function(){fe(window,"mouseup",m),setTimeout(v,20)};de(window,"mouseup",m)}else setTimeout(v,50)}function g(){if(null!=i.selectionStart){var e=n.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function v(){if(t.contextMenuPending==v&&(t.contextMenuPending=!1,t.wrapper.style.cssText=f,i.style.cssText=h,a&&l<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=u),null!=i.selectionStart)){(!a||a&&l<9)&&g();var e=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?ei(n,lo)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},$a.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},$a.prototype.setUneditable=function(){},$a.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=Ca&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Ca,n("value","",(function(e,t){return e.setValue(t)}),!0),n("mode",null,(function(e,t){e.doc.modeOption=t,Li(e)}),!0),n("indentUnit",2,Li,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(e){Mi(e),_n(e),dr(e)}),!0),n("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(et(r,o))}r++}));for(var i=n.length-1;i>=0;i--)mo(e.doc,t,n[i],et(n[i].line,n[i].ch+t.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Ca&&e.refresh()})),n("specialCharPlaceholder",Qt,(function(e){return e.refresh()}),!0),n("electricChars",!0),n("inputStyle",v?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n("rtlMoveVisually",!b),n("wholeLineUpdateBefore",!0),n("theme","default",(function(e){Da(e),mi(e)}),!0),n("keyMap","default",(function(e,t,n){var r=Zo(t),i=n!=Ca&&Zo(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Fa,!0),n("gutters",[],(function(e,t){e.display.gutterSpecs=fi(t,e.options.lineNumbers),mi(e)}),!0),n("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?ar(e.display)+"px":"0",e.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(e){return Wr(e)}),!0),n("scrollbarStyle","native",(function(e){Ur(e),Wr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=fi(e.options.gutters,t),mi(e)}),!0),n("firstLineNumber",1,mi,!0),n("lineNumberFormatter",(function(e){return e}),mi,!0),n("showCursorWhenSelecting",!1,gr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(e,t){"nocursor"==t&&(Sr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),n("dragDrop",!0,Sa),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,gr,!0),n("singleCursorHeightPerLine",!0,gr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,Mi,!0),n("addModeClass",!1,Mi,!0),n("pollInterval",100),n("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),n("historyEventDelay",1250),n("viewportMargin",10,(function(e){return e.refresh()}),!0),n("maxHighlightLength",1e4,Mi,!0),n("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),n("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),n("autofocus",null),n("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),n("phrases",null)}(Aa),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&ei(this,t[e])(this,n,i),pe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Zo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;nn&&(Ta(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Mr(this));else{var o=i.from(),a=i.to(),l=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;s0&&Zi(this.doc,r,new wi(o,u[r].to()),j)}}})),getTokenAt:function(e,t){return xt(this,e,t)},getLineTokens:function(e,t){return xt(this,et(e),t,!0)},getTokenTypeAt:function(e){e=lt(this.doc,e);var t,n=ht(this,Ge(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=Ge(this.doc,e)}else r=e;return Un(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-qt(r):0)},defaultTextHeight:function(){return rr(this.display)},defaultCharWidth:function(){return ir(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o,a,l,s=this.display,u=(e=Vn(this,lt(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),s.sizer.appendChild(t),"over"==r)u=e.top;else if("above"==r||"near"==r){var d=Math.max(s.wrapper.clientHeight,this.doc.height),h=Math.max(s.sizer.clientWidth,s.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>d)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=d&&(u=e.bottom),c+t.offsetWidth>h&&(c=h-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==i?(c=s.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),n&&(o=this,a={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(l=Tr(o,a)).scrollTop&&Ir(o,l.scrollTop),null!=l.scrollLeft&&Hr(o,l.scrollLeft))},triggerOnKeyDown:ti(ca),triggerOnKeyPress:ti(ha),triggerOnKeyUp:da,triggerOnMouseDown:ti(ga),execCommand:function(e){if(ta.hasOwnProperty(e))return ta[e].call(null,this)},triggerElectric:ti((function(e){Oa(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=lt(this.doc,e),a=0;a0&&a(t.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&sr(this),pe(this,"refresh",this)})),swapDoc:ti((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Ii(this,e),_n(this),this.display.input.reset(),Br(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sn(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},xe(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Aa);var Ga="iter insert remove copy getEditor constructor".split(" ");for(var Va in Mo.prototype)Mo.prototype.hasOwnProperty(Va)&&_(Ga,Va)<0&&(Aa.prototype[Va]=function(e){return function(){return e.apply(this.doc,arguments)}}(Mo.prototype[Va]));return xe(Mo),Aa.inputStyles={textarea:$a,contenteditable:_a},Aa.defineMode=function(e){Aa.defaults.mode||"null"==e||(Aa.defaults.mode=e),He.apply(this,arguments)},Aa.defineMIME=function(e,t){ze[e]=t},Aa.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Aa.defineMIME("text/plain","null"),Aa.defineExtension=function(e,t){Aa.prototype[e]=t},Aa.defineDocExtension=function(e,t){Mo.prototype[e]=t},Aa.fromTextArea=function(e,t){if((t=t?H(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=B();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=l.getValue()}var i;if(e.form&&(de(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(e){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display="",e.form&&(fe(e.form,"submit",r),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var l=Aa((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return l},function(e){e.off=fe,e.on=de,e.wheelEventPixels=bi,e.Doc=Mo,e.splitLines=Me,e.countColumn=R,e.findColumn=$,e.isWordChar=J,e.Pass=W,e.signal=pe,e.Line=Gt,e.changeEnd=Fi,e.scrollbarModel=qr,e.Pos=et,e.cmpPos=tt,e.modes=Ie,e.mimeModes=ze,e.resolveMode=Re,e.getMode=Pe,e.modeExtensions=_e,e.extendMode=We,e.copyState=je,e.startState=Ue,e.innerMode=qe,e.commands=ta,e.keyMap=qo,e.keyName=Ko,e.isModifierKey=Vo,e.lookupKey=Go,e.normalizeKeyMap=$o,e.StringStream=$e,e.SharedTextMarker=Ao,e.TextMarker=So,e.LineWidget=Co,e.e_preventDefault=ye,e.e_stopPropagation=be,e.e_stop=Ce,e.addClass=N,e.contains=M,e.rmClass=F,e.keyNames=Po}(Aa),Aa.version="5.65.0",Aa}))},{}],11:[function(e,t,n){var r;r=function(e){"use strict";var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode("gfm",(function(n,r){var i=0,o={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if("`"===e.peek()){e.next();var o=e.pos;e.eatWhile("`");var a=1+e.pos-o;return n.code?a===i&&(n.code=!1):(i=a,n.code=!0),null}if(n.code)return e.next(),null;if(e.eatSpace())return n.ateSpace=!0,null;if((e.sol()||n.ateSpace)&&(n.ateSpace=!1,!1!==r.gitHubSpice)){if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return n.combineTokens=!0,"link";if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return n.combineTokens=!0,"link"}return e.match(t)&&"]("!=e.string.slice(e.start-2,e.start)&&(0==e.start||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,"link"):(e.next(),null)},blankLine:function(e){return e.code=!1,null}},a={taskLists:!0,strikethrough:!0,emoji:!0};for(var l in r)a[l]=r[l];return a.name="markdown",e.overlayMode(e.getMode(n,a),o)}),"markdown"),e.defineMIME("text/x-gfm","gfm")},"object"==typeof n&&"object"==typeof t?r(e("../../lib/codemirror"),e("../markdown/markdown"),e("../../addon/mode/overlay")):r(CodeMirror)},{"../../addon/mode/overlay":7,"../../lib/codemirror":10,"../markdown/markdown":12}],12:[function(e,t,n){var r;r=function(e){"use strict";e.defineMode("markdown",(function(t,n){var r=e.getMode(t,"text/html"),i="null"==r.name;void 0===n.highlightFormatting&&(n.highlightFormatting=!1),void 0===n.maxBlockquoteDepth&&(n.maxBlockquoteDepth=0),void 0===n.taskLists&&(n.taskLists=!1),void 0===n.strikethrough&&(n.strikethrough=!1),void 0===n.emoji&&(n.emoji=!1),void 0===n.fencedCodeBlockHighlighting&&(n.fencedCodeBlockHighlighting=!0),void 0===n.fencedCodeBlockDefaultMode&&(n.fencedCodeBlockDefaultMode="text/plain"),void 0===n.xml&&(n.xml=!0),void 0===n.tokenTypeOverrides&&(n.tokenTypeOverrides={});var o={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var a in o)o.hasOwnProperty(a)&&n.tokenTypeOverrides[a]&&(o[a]=n.tokenTypeOverrides[a]);var l=/^([*\-_])(?:\s*\1){2,}\s*$/,s=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,u=/^\[(x| )\](?=\s)/i,c=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,d=/^ {0,3}(?:\={1,}|-{2,})\s*$/,h=/^[^#!\[\]*_\\<>` "'(~:]+/,f=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,p=/^\s*\[[^\]]+?\]:.*$/,m=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/;function g(e,t,n){return t.f=t.inline=n,n(e,t)}function v(e,t,n){return t.f=t.block=n,n(e,t)}function x(t){if(t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==b){var n=i;if(!n){var o=e.innerMode(r,t.htmlState);n="xml"==o.mode.name&&null===o.state.tagStart&&!o.state.context&&o.state.tokenize.isInText}n&&(t.f=k,t.block=y,t.htmlState=null)}return t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function y(r,i){var a,h=r.column()===i.indentation,m=!(a=i.prevLine.stream)||!/\S/.test(a.string),v=i.indentedCode,x=i.prevLine.hr,y=!1!==i.list,b=(i.listStack[i.listStack.length-1]||0)+3;i.indentedCode=!1;var w=i.indentation;if(null===i.indentationDiff&&(i.indentationDiff=i.indentation,y)){for(i.list=null;w=4&&(v||i.prevLine.fencedCodeEnd||i.prevLine.header||m))return r.skipToEnd(),i.indentedCode=!0,o.code;if(r.eatSpace())return null;if(h&&i.indentation<=b&&(F=r.match(c))&&F[1].length<=6)return i.quote=0,i.header=F[1].length,i.thisLine.header=!0,n.highlightFormatting&&(i.formatting="header"),i.f=i.inline,C(i);if(i.indentation<=b&&r.eat(">"))return i.quote=h?1:i.quote+1,n.highlightFormatting&&(i.formatting="quote"),r.eatSpace(),C(i);if(!S&&!i.setext&&h&&i.indentation<=b&&(F=r.match(s))){var A=F[1]?"ol":"ul";return i.indentation=w+r.current().length,i.list=!0,i.quote=0,i.listStack.push(i.indentation),i.em=!1,i.strong=!1,i.code=!1,i.strikethrough=!1,n.taskLists&&r.match(u,!1)&&(i.taskList=!0),i.f=i.inline,n.highlightFormatting&&(i.formatting=["list","list-"+A]),C(i)}return h&&i.indentation<=b&&(F=r.match(f,!0))?(i.quote=0,i.fencedEndRE=new RegExp(F[1]+"+ *$"),i.localMode=n.fencedCodeBlockHighlighting&&function(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return"null"==i.name?null:i}(F[2]||n.fencedCodeBlockDefaultMode),i.localMode&&(i.localState=e.startState(i.localMode)),i.f=i.block=D,n.highlightFormatting&&(i.formatting="code-block"),i.code=-1,C(i)):i.setext||!(k&&y||i.quote||!1!==i.list||i.code||S||p.test(r.string))&&(F=r.lookAhead(1))&&(F=F.match(d))?(i.setext?(i.header=i.setext,i.setext=0,r.skipToEnd(),n.highlightFormatting&&(i.formatting="header")):(i.header="="==F[0].charAt(0)?1:2,i.setext=i.header),i.thisLine.header=!0,i.f=i.inline,C(i)):S?(r.skipToEnd(),i.hr=!0,i.thisLine.hr=!0,o.hr):"["===r.peek()?g(r,i,E):g(r,i,i.inline)}function b(t,n){var o=r.token(t,n.htmlState);if(!i){var a=e.innerMode(r,n.htmlState);("xml"==a.mode.name&&null===a.state.tagStart&&!a.state.context&&a.state.tokenize.isInText||n.md_inside&&t.current().indexOf(">")>-1)&&(n.f=k,n.block=y,n.htmlState=null)}return o}function D(e,t){var r,i=t.listStack[t.listStack.length-1]||0,a=t.indentation=e.quote?t.push(o.formatting+"-"+e.formatting[r]+"-"+e.quote):t.push("error"))}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref?t.push(o.linkHref,"url"):(e.strong&&t.push(o.strong),e.em&&t.push(o.em),e.strikethrough&&t.push(o.strikethrough),e.emoji&&t.push(o.emoji),e.linkText&&t.push(o.linkText),e.code&&t.push(o.code),e.image&&t.push(o.image),e.imageAltText&&t.push(o.imageAltText,"link"),e.imageMarker&&t.push(o.imageMarker)),e.header&&t.push(o.header,o.header+"-"+e.header),e.quote&&(t.push(o.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(o.quote+"-"+e.quote):t.push(o.quote+"-"+n.maxBlockquoteDepth)),!1!==e.list){var i=(e.listStack.length-1)%3;i?1===i?t.push(o.list2):t.push(o.list3):t.push(o.list1)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function w(e,t){if(e.match(h,!0))return C(t)}function k(t,i){var a=i.text(t,i);if(void 0!==a)return a;if(i.list)return i.list=null,C(i);if(i.taskList)return" "===t.match(u,!0)[1]?i.taskOpen=!0:i.taskClosed=!0,n.highlightFormatting&&(i.formatting="task"),i.taskList=!1,C(i);if(i.taskOpen=!1,i.taskClosed=!1,i.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(i.formatting="header"),C(i);var l=t.next();if(i.linkTitle){i.linkTitle=!1;var s=l;"("===l&&(s=")");var c="^\\s*(?:[^"+(s=(s+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1"))+"\\\\]+|\\\\\\\\|\\\\.)"+s;if(t.match(new RegExp(c),!0))return o.linkHref}if("`"===l){var d=i.formatting;n.highlightFormatting&&(i.formatting="code"),t.eatWhile("`");var h=t.current().length;if(0!=i.code||i.quote&&1!=h){if(h==i.code){var f=C(i);return i.code=0,f}return i.formatting=d,C(i)}return i.code=h,C(i)}if(i.code)return C(i);if("\\"===l&&(t.next(),n.highlightFormatting)){var p=C(i),g=o.formatting+"-escape";return p?p+" "+g:g}if("!"===l&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return i.imageMarker=!0,i.image=!0,n.highlightFormatting&&(i.formatting="image"),C(i);if("["===l&&i.imageMarker&&t.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return i.imageMarker=!1,i.imageAltText=!0,n.highlightFormatting&&(i.formatting="image"),C(i);if("]"===l&&i.imageAltText){n.highlightFormatting&&(i.formatting="image");var p=C(i);return i.imageAltText=!1,i.image=!1,i.inline=i.f=F,p}if("["===l&&!i.image)return i.linkText&&t.match(/^.*?\]/)||(i.linkText=!0,n.highlightFormatting&&(i.formatting="link")),C(i);if("]"===l&&i.linkText){n.highlightFormatting&&(i.formatting="link");var p=C(i);return i.linkText=!1,i.inline=i.f=t.match(/\(.*?\)| ?\[.*?\]/,!1)?F:k,p}if("<"===l&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=C(i))?p+=" ":p="",p+o.linkInline;if("<"===l&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=C(i))?p+=" ":p="",p+o.linkEmail;if(n.xml&&"<"===l&&t.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var x=t.string.indexOf(">",t.pos);if(-1!=x){var y=t.string.substring(t.start,x);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(y)&&(i.md_inside=!0)}return t.backUp(1),i.htmlState=e.startState(r),v(t,i,b)}if(n.xml&&"<"===l&&t.match(/^\/\w*?>/))return i.md_inside=!1,"tag";if("*"===l||"_"===l){for(var D=1,w=1==t.pos?" ":t.string.charAt(t.pos-2);D<3&&t.eat(l);)D++;var A=t.peek()||" ",E=!/\s/.test(A)&&(!m.test(A)||/\s/.test(w)||m.test(w)),T=!/\s/.test(w)&&(!m.test(w)||/\s/.test(A)||m.test(A)),L=null,M=null;if(D%2&&(i.em||!E||"*"!==l&&T&&!m.test(w)?i.em!=l||!T||"*"!==l&&E&&!m.test(A)||(L=!1):L=!0),D>1&&(i.strong||!E||"*"!==l&&T&&!m.test(w)?i.strong!=l||!T||"*"!==l&&E&&!m.test(A)||(M=!1):M=!0),null!=M||null!=L)return n.highlightFormatting&&(i.formatting=null==L?"strong":null==M?"em":"strong em"),!0===L&&(i.em=l),!0===M&&(i.strong=l),f=C(i),!1===L&&(i.em=!1),!1===M&&(i.strong=!1),f}else if(" "===l&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return C(i);t.backUp(1)}if(n.strikethrough)if("~"===l&&t.eatWhile(l)){if(i.strikethrough)return n.highlightFormatting&&(i.formatting="strikethrough"),f=C(i),i.strikethrough=!1,f;if(t.match(/^[^\s]/,!1))return i.strikethrough=!0,n.highlightFormatting&&(i.formatting="strikethrough"),C(i)}else if(" "===l&&t.match("~~",!0)){if(" "===t.peek())return C(i);t.backUp(2)}if(n.emoji&&":"===l&&t.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){i.emoji=!0,n.highlightFormatting&&(i.formatting="emoji");var B=C(i);return i.emoji=!1,B}return" "===l&&(t.match(/^ +$/,!1)?i.trailingSpace++:i.trailingSpace&&(i.trailingSpaceNewLine=!0)),C(i)}function S(e,t){if(">"===e.next()){t.f=t.inline=k,n.highlightFormatting&&(t.formatting="link");var r=C(t);return r?r+=" ":r="",r+o.linkInline}return e.match(/^[^>]+/,!0),o.linkInline}function F(e,t){if(e.eatSpace())return null;var r,i=e.next();return"("===i||"["===i?(t.f=t.inline=(r="("===i?")":"]",function(e,t){if(e.next()===r){t.f=t.inline=k,n.highlightFormatting&&(t.formatting="link-string");var i=C(t);return t.linkHref=!1,i}return e.match(A[r]),t.linkHref=!0,C(t)}),n.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,C(t)):"error"}var A={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function E(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=T,e.next(),n.highlightFormatting&&(t.formatting="link"),t.linkText=!0,C(t)):g(e,t,k)}function T(e,t){if(e.match("]:",!0)){t.f=t.inline=L,n.highlightFormatting&&(t.formatting="link");var r=C(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),o.linkText}function L(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),t.f=t.inline=k,o.linkHref+" url")}var M={startState:function(){return{f:y,prevLine:{stream:null},thisLine:{stream:null},block:y,htmlState:null,indentation:0,inline:k,text:w,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(r,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine.stream){if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0))return x(t),null;if(t.prevLine=t.thisLine,t.thisLine={stream:e},t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,!t.localState&&(t.f=t.block,t.f!=b)){var n=e.match(/^\s*/,!0)[0].replace(/\t/g," ").length;if(t.indentation=n,t.indentationDiff=null,n>0)return null}}return t.f(e,t)},innerMode:function(e){return e.block==b?{state:e.htmlState,mode:r}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:M}},indent:function(t,n,i){return t.block==b&&r.indent?r.indent(t.htmlState,n,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,n,i):e.Pass},blankLine:x,getType:C,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return M}),"xml"),e.defineMIME("text/markdown","markdown"),e.defineMIME("text/x-markdown","markdown")},"object"==typeof n&&"object"==typeof t?r(e("../../lib/codemirror"),e("../xml/xml"),e("../meta")):r(CodeMirror)},{"../../lib/codemirror":10,"../meta":13,"../xml/xml":14}],13:[function(e,t,n){(function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy","cbl"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var t=0;t-1&&t.substring(i+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n")):null:e.match("--")?n(f("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(p(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=f("meta","?>"),"meta"):(o=e.eat("/")?"closeTag":"openTag",t.tokenize=h,"tag bracket"):"&"==r?(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error":(e.eatWhile(/[^&<]/),null)}function h(e,t){var n,r,i=e.next();if(">"==i||"/"==i&&e.eat(">"))return t.tokenize=d,o=">"==i?"endTag":"selfcloseTag","tag bracket";if("="==i)return o="equals",null;if("<"==i){t.tokenize=d,t.state=y,t.tagName=t.tagStart=null;var a=t.tokenize(e,t);return a?a+" tag error":"tag error"}return/[\'\"]/.test(i)?(t.tokenize=(n=i,r=function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=h;break}return"string"},r.isInAttribute=!0,r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function f(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function p(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=p(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=d;break}return n.tokenize=p(e-1),n.tokenize(t,n)}}return"meta"}}function m(e){return e&&e.toLowerCase()}function g(e,t,n){this.prev=e.context,this.tagName=t||"",this.indent=e.indented,this.startOfLine=n,(s.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function v(e){e.context&&(e.context=e.context.prev)}function x(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!s.contextGrabbers.hasOwnProperty(m(n))||!s.contextGrabbers[m(n)].hasOwnProperty(m(t)))return;v(e)}}function y(e,t,n){return"openTag"==e?(n.tagStart=t.column(),b):"closeTag"==e?D:y}function b(e,t,n){return"word"==e?(n.tagName=t.current(),a="tag",k):s.allowMissingTagName&&"endTag"==e?(a="tag bracket",k(e,0,n)):(a="error",b)}function D(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&s.implicitlyClosed.hasOwnProperty(m(n.context.tagName))&&v(n),n.context&&n.context.tagName==r||!1===s.matchClosing?(a="tag",C):(a="tag error",w)}return s.allowMissingTagName&&"endTag"==e?(a="tag bracket",C(e,0,n)):(a="error",w)}function C(e,t,n){return"endTag"!=e?(a="error",C):(v(n),y)}function w(e,t,n){return a="error",C(e,0,n)}function k(e,t,n){if("word"==e)return a="attribute",S;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||s.autoSelfClosers.hasOwnProperty(m(r))?x(n,r):(x(n,r),n.context=new g(n,r,i==n.indented)),y}return a="error",k}function S(e,t,n){return"equals"==e?F:(s.allowMissing||(a="error"),k(e,0,n))}function F(e,t,n){return"string"==e?A:"word"==e&&s.allowUnquoted?(a="string",k):(a="error",k(e,0,n))}function A(e,t,n){return"string"==e?A:k(e,0,n)}return d.isInText=!0,{startState:function(e){var t={tokenize:d,state:y,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&"comment"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n="error"==a?n+" error":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+l;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=h&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==s.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+l*(s.multilineTagIndentFactor||1);if(s.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:s.htmlMode?"html":"xml",helperType:s.htmlMode?"html":"xml",skipAttribute:function(e){e.state==F&&(e.state=k)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:"closeTag"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}})),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})("object"==typeof n&&"object"==typeof t?e("../../lib/codemirror"):CodeMirror)},{"../../lib/codemirror":10}],15:[function(e,t,n){!function(e,r){"object"==typeof n&&void 0!==t?r(n):r((e="undefined"!=typeof globalThis?globalThis:e||self).marked={})}(this,(function(e){"use strict";function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults={baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};var o=/[&<>"']/,a=/[&<>"']/g,l=/[<>"']|&(?!#?\w+;)/,s=/[<>"']|&(?!#?\w+;)/g,u={"&":"&","<":"<",">":">",'"':""","'":"'"},c=function(e){return u[e]};function d(e,t){if(t){if(o.test(e))return e.replace(a,c)}else if(l.test(e))return e.replace(s,c);return e}var h=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(e){return e.replace(h,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var p=/(^|[^\[])\^/g;function m(e,t){e=e.source||e,t=t||"";var n={replace:function(t,r){return r=(r=r.source||r).replace(p,"$1"),e=e.replace(t,r),n},getRegex:function(){return new RegExp(e,t)}};return n}var g=/[^\w:]/g,v=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function x(e,t,n){if(e){var r;try{r=decodeURIComponent(f(n)).replace(g,"").toLowerCase()}catch(e){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}t&&!v.test(n)&&(n=function(e,t){y[" "+e]||(b.test(e)?y[" "+e]=e+"/":y[" "+e]=F(e,"/",!0));var n=-1===(e=y[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(D,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(C,"$1")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}var y={},b=/^[^:]+:\/*[^/]*$/,D=/^([^:]+:)[\s\S]*$/,C=/^([^:]+:\/*[^/]*)[\s\S]*$/;var w={exec:function(){}};function k(e){for(var t,n,r=1;r=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n[0].trim()||n.shift(),n[n.length-1].trim()||n.pop(),n.length>t)n.splice(t);else for(;n.length1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}function T(e,t,n,r){var i=t.href,o=t.title?d(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){r.state.inLink=!0;var l={type:"link",raw:n,href:i,title:o,text:a,tokens:r.inlineTokens(a,[])};return r.state.inLink=!1,l}return{type:"image",raw:n,href:i,title:o,text:d(a)}}var L=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}},n.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:F(n,"\n")}}},n.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}},n.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var r=F(n,"#");this.options.pedantic?n=r.trim():r&&!/ $/.test(r)||(n=r.trim())}var i={type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}},n.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},n.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(n,[]),text:n}}},n.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,i,o,a,l,s,u,c,d,h,f,p,m=t[1].trim(),g=m.length>1,v={type:"list",raw:"",ordered:g,start:g?+m.slice(0,-1):"",loose:!1,items:[]};m=g?"\\d{1,9}\\"+m.slice(-1):"\\"+m,this.options.pedantic&&(m=g?m:"[*+-]");for(var x=new RegExp("^( {0,3}"+m+")((?: [^\\n]*)?(?:\\n|$))");e&&(p=!1,t=x.exec(e))&&!this.rules.block.hr.test(e);){if(n=t[0],e=e.substring(n.length),c=t[2].split("\n",1)[0],d=e.split("\n",1)[0],this.options.pedantic?(a=2,f=c.trimLeft()):(a=(a=t[2].search(/[^ ]/))>4?1:a,f=c.slice(a),a+=t[1].length),s=!1,!c&&/^ *$/.test(d)&&(n+=d+"\n",e=e.substring(d.length+1),p=!0),!p)for(var y=new RegExp("^ {0,"+Math.min(3,a-1)+"}(?:[*+-]|\\d{1,9}[.)])");e&&(c=h=e.split("\n",1)[0],this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!y.test(c));){if(c.search(/[^ ]/)>=a||!c.trim())f+="\n"+c.slice(a);else{if(s)break;f+="\n"+c}s||c.trim()||(s=!0),n+=h+"\n",e=e.substring(h.length+1)}v.loose||(u?v.loose=!0:/\n *\n *$/.test(n)&&(u=!0)),this.options.gfm&&(i=/^\[[ xX]\] /.exec(f))&&(o="[ ] "!==i[0],f=f.replace(/^\[[ xX]\] +/,"")),v.items.push({type:"list_item",raw:n,task:!!i,checked:o,loose:!1,text:f}),v.raw+=n}v.items[v.items.length-1].raw=n.trimRight(),v.items[v.items.length-1].text=f.trimRight(),v.raw=v.raw.trimRight();var b=v.items.length;for(l=0;l1)return!0}return!1}));!v.loose&&D.length&&C&&(v.loose=!0,v.items[l].loose=!0)}return v}},n.html=function(e){var t=this.rules.block.html.exec(e);if(t){var n={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(n.type="paragraph",n.text=this.options.sanitizer?this.options.sanitizer(t[0]):d(t[0]),n.tokens=[],this.lexer.inline(n.text,n.tokens)),n}},n.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},n.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:S(t[1]).map((function(e){return{text:e}})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,i,o,a,l=n.align.length;for(r=0;r/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):d(t[0]):t[0]}},n.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var r=F(n.slice(0,-1),"\\");if((n.length-r.length)%2==0)return}else{var i=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,r=0,i=0;i-1){var o=(0===t[0].indexOf("!")?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,o).trim(),t[3]=""}}var a=t[2],l="";if(this.options.pedantic){var s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);s&&(a=s[1],l=s[3])}else l=t[3]?t[3].slice(1,-1):"";return a=a.trim(),/^$/.test(n)?a.slice(1):a.slice(1,-1)),T(t,{href:a?a.replace(this.rules.inline._escapes,"$1"):a,title:l?l.replace(this.rules.inline._escapes,"$1"):l},t[0],this.lexer)}},n.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return T(n,r,n[0],this.lexer)}},n.emStrong=function(e,t,n){void 0===n&&(n="");var r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&(!r[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var i=r[1]||r[2]||"";if(!i||i&&(""===n||this.rules.inline.punctuation.exec(n))){var o,a,l=r[0].length-1,s=l,u=0,c="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+l);null!=(r=c.exec(t));)if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6])if(a=o.length,r[3]||r[4])s+=a;else if(!((r[5]||r[6])&&l%3)||(l+a)%3){if(!((s-=a)>0)){if(a=Math.min(a,a+s+u),Math.min(l,a)%2){var d=e.slice(1,l+r.index+a);return{type:"em",raw:e.slice(0,l+r.index+a+1),text:d,tokens:this.lexer.inlineTokens(d,[])}}var h=e.slice(2,l+r.index+a-1);return{type:"strong",raw:e.slice(0,l+r.index+a+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}else u+=a}}},n.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=/^ /.test(n)&&/ $/.test(n);return r&&i&&(n=n.substring(1,n.length-1)),n=d(n,!0),{type:"codespan",raw:t[0],text:n}}},n.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},n.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}},n.autolink=function(e,t){var n,r,i=this.rules.inline.autolink.exec(e);if(i)return r="@"===i[2]?"mailto:"+(n=d(this.options.mangle?t(i[1]):i[1])):n=d(i[1]),{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}},n.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,i;if("@"===n[2])i="mailto:"+(r=d(this.options.mangle?t(n[0]):n[0]));else{var o;do{o=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(o!==n[0]);r=d(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}},n.inlineText=function(e,t){var n,r=this.rules.inline.text.exec(e);if(r)return n=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):d(r[0]):r[0]:d(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:n}},t}(),M={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:w,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};M.def=m(M.def).replace("label",M._label).replace("title",M._title).getRegex(),M.bullet=/(?:[*+-]|\d{1,9}[.)])/,M.listItemStart=m(/^( *)(bull) */).replace("bull",M.bullet).getRegex(),M.list=m(M.list).replace(/bull/g,M.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+M.def.source+")").getRegex(),M._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",M._comment=/|$)/,M.html=m(M.html,"i").replace("comment",M._comment).replace("tag",M._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),M.paragraph=m(M._paragraph).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",M._tag).getRegex(),M.blockquote=m(M.blockquote).replace("paragraph",M.paragraph).getRegex(),M.normal=k({},M),M.gfm=k({},M.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),M.gfm.table=m(M.gfm.table).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",M._tag).getRegex(),M.gfm.paragraph=m(M._paragraph).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",M.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",M._tag).getRegex(),M.pedantic=k({},M.normal,{html:m("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",M._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:w,paragraph:m(M.normal._paragraph).replace("hr",M.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",M.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var B={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:w,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:w,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}B._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",B.punctuation=m(B.punctuation).replace(/punctuation/g,B._punctuation).getRegex(),B.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,B.escapedEmSt=/\\\*|\\_/g,B._comment=m(M._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),B.emStrong.lDelim=m(B.emStrong.lDelim).replace(/punct/g,B._punctuation).getRegex(),B.emStrong.rDelimAst=m(B.emStrong.rDelimAst,"g").replace(/punct/g,B._punctuation).getRegex(),B.emStrong.rDelimUnd=m(B.emStrong.rDelimUnd,"g").replace(/punct/g,B._punctuation).getRegex(),B._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,B._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,B._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,B.autolink=m(B.autolink).replace("scheme",B._scheme).replace("email",B._email).getRegex(),B._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,B.tag=m(B.tag).replace("comment",B._comment).replace("attribute",B._attribute).getRegex(),B._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,B._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,B._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,B.link=m(B.link).replace("label",B._label).replace("href",B._href).replace("title",B._title).getRegex(),B.reflink=m(B.reflink).replace("label",B._label).replace("ref",M._label).getRegex(),B.nolink=m(B.nolink).replace("ref",M._label).getRegex(),B.reflinkSearch=m(B.reflinkSearch,"g").replace("reflink",B.reflink).replace("nolink",B.nolink).getRegex(),B.normal=k({},B),B.pedantic=k({},B.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:m(/^!?\[(label)\]\((.*?)\)/).replace("label",B._label).getRegex(),reflink:m(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",B._label).getRegex()}),B.gfm=k({},B.normal,{escape:m(B.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),!(r=t[t.length-1])||"paragraph"!==r.type&&"text"!==r.type?t.push(n):(r.raw+="\n"+n.raw,r.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),!(r=t[t.length-1])||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title}):(r.raw+="\n"+n.raw,r.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);else if(n=this.tokenizer.table(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else if(i=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,n=e.slice(1),r=void 0;a.options.extensions.startBlock.forEach((function(e){"number"==typeof(r=e.call({lexer:this},n))&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}(),this.state.top&&(n=this.tokenizer.paragraph(i)))r=t[t.length-1],o&&"paragraph"===r.type?(r.raw+="\n"+n.raw,r.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n),o=i.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),(r=t[t.length-1])&&"text"===r.type?(r.raw+="\n"+n.raw,r.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);else if(e){var l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return this.state.top=!0,t},a.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},a.inlineTokens=function(e,t){var n,r,i,o=this;void 0===t&&(t=[]);var a,l,s,u=e;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(c.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(u));)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(u=u.slice(0,a.index)+"["+E("a",a[0].length-2)+"]"+u.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(u));)u=u.slice(0,a.index)+"["+E("a",a[0].length-2)+"]"+u.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(u));)u=u.slice(0,a.index)+"++"+u.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(l||(s=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(r){return!!(n=r.call({lexer:o},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)}))))if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),(r=t[t.length-1])&&"text"===n.type&&"text"===r.type?(r.raw+=n.raw,r.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),(r=t[t.length-1])&&"text"===n.type&&"text"===r.type?(r.raw+=n.raw,r.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,u,s))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e,O))e=e.substring(n.raw.length),t.push(n);else if(this.state.inLink||!(n=this.tokenizer.url(e,O))){if(i=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,n=e.slice(1),r=void 0;o.options.extensions.startInline.forEach((function(e){"number"==typeof(r=e.call({lexer:this},n))&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}(),n=this.tokenizer.inlineText(i,N))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(s=n.raw.slice(-1)),l=!0,(r=t[t.length-1])&&"text"===r.type?(r.raw+=n.raw,r.text+=n.text):t.push(n);else if(e){var d="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}else e=e.substring(n.raw.length),t.push(n);return t},r=n,o=[{key:"rules",get:function(){return{block:M,inline:B}}}],(i=null)&&t(r.prototype,i),o&&t(r,o),Object.defineProperty(r,"prototype",{writable:!1}),n}(),z=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(e,r);null!=i&&i!==e&&(n=!0,e=i)}return e=e.replace(/\n$/,"")+"\n",r?'
'+(n?e:d(e,!0))+"
\n":"
"+(n?e:d(e,!0))+"
\n"},n.blockquote=function(e){return"
\n"+e+"
\n"},n.html=function(e){return e},n.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},n.hr=function(){return this.options.xhtml?"
\n":"
\n"},n.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},n.listitem=function(e){return"
  • "+e+"
  • \n"},n.checkbox=function(e){return" "},n.paragraph=function(e){return"

    "+e+"

    \n"},n.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},n.tablerow=function(e){return"\n"+e+"\n"},n.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},n.strong=function(e){return""+e+""},n.em=function(e){return""+e+""},n.codespan=function(e){return""+e+""},n.br=function(){return this.options.xhtml?"
    ":"
    "},n.del=function(e){return""+e+""},n.link=function(e,t,n){if(null===(e=x(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},n.image=function(e,t,n){if(null===(e=x(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},n.text=function(e){return e},t}(),H=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),R=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),P=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new z,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new H,this.slugger=new R}t.parse=function(e,n){return new t(n).parse(e)},t.parseInline=function(e,n){return new t(n).parseInline(e)};var n=t.prototype;return n.parse=function(e,t){void 0===t&&(t=!0);var n,r,i,o,a,l,s,u,c,d,h,p,m,g,v,x,y,b,D,C="",w=e.length;for(n=0;n0&&"paragraph"===v.tokens[0].type?(v.tokens[0].text=b+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&"text"===v.tokens[0].tokens[0].type&&(v.tokens[0].tokens[0].text=b+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:b}):g+=b),g+=this.parse(v.tokens,m),c+=this.renderer.listitem(g,y,x);C+=this.renderer.list(c,h,p);continue;case"html":C+=this.renderer.html(d.text);continue;case"paragraph":C+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(c=d.tokens?this.parseInline(d.tokens):d.text;n+1An error occurred:

    "+d(e.message+"",!0)+"
    ";throw e}}_.options=_.setOptions=function(t){var n;return k(_.defaults,t),n=_.defaults,e.defaults=n,_},_.getDefaults=i,_.defaults=e.defaults,_.use=function(){for(var e=arguments.length,t=new Array(e),n=0;nAn error occurred:

    "+d(e.message+"",!0)+"
    ";throw e}},_.Parser=P,_.parser=P.parse,_.Renderer=z,_.TextRenderer=H,_.Lexer=I,_.lexer=I.lex,_.Tokenizer=L,_.Slugger=R,_.parse=_;var W=_.options,j=_.setOptions,q=_.use,U=_.walkTokens,$=_.parseInline,G=_,V=P.parse,X=I.lex;e.Lexer=I,e.Parser=P,e.Renderer=z,e.Slugger=R,e.TextRenderer=H,e.Tokenizer=L,e.getDefaults=i,e.lexer=X,e.marked=_,e.options=W,e.parse=G,e.parseInline=$,e.parser=V,e.setOptions=j,e.use=q,e.walkTokens=U,Object.defineProperty(e,"__esModule",{value:!0})}))},{}],16:[function(e,t,n){(function(n){(function(){var r;!function(){"use strict";(r=function(e,t,r,i){i=i||{},this.dictionary=null,this.rules={},this.dictionaryTable={},this.compoundRules=[],this.compoundRuleCodes={},this.replacementTable=[],this.flags=i.flags||{},this.memoized={},this.loaded=!1;var o,a,l,s,u,c=this;function d(e,t){var n=c._readFile(e,null,i.asyncLoad);i.asyncLoad?n.then((function(e){t(e)})):t(n)}function h(e){t=e,r&&p()}function f(e){r=e,t&&p()}function p(){for(c.rules=c._parseAFF(t),c.compoundRuleCodes={},a=0,s=c.compoundRules.length;a0&&(b.continuationClasses=x),"."!==y&&(b.match="SFX"===d?new RegExp(y+"$"):new RegExp("^"+y)),"0"!=m&&(b.remove="SFX"===d?new RegExp(m+"$"):m),p.push(b)}s[h]={type:d,combineable:"Y"==f,entries:p},i+=n}else if("COMPOUNDRULE"===d){for(o=i+1,l=i+1+(n=parseInt(c[1],10));o0&&(null===n[e]&&(n[e]=[]),n[e].push(t))}for(var i=1,o=t.length;i1){var u=this.parseRuleCodes(l[1]);"NEEDAFFIX"in this.flags&&-1!=u.indexOf(this.flags.NEEDAFFIX)||r(s,u);for(var c=0,d=u.length;c=this.flags.COMPOUNDMIN)for(t=0,n=this.compoundRules.length;t1&&c[1][1]!==c[1][0]&&(o=c[0]+c[1][1]+c[1][0]+c[1].substring(2),t&&!l.check(o)||(o in a?a[o]+=1:a[o]=1)),c[1]){var d=c[1].substring(0,1).toUpperCase()===c[1].substring(0,1)?"uppercase":"lowercase";for(r=0;rr?1:t[0].localeCompare(e[0])})).reverse();var u=[],c="lowercase";e.toUpperCase()===e?c="uppercase":e.substr(0,1).toUpperCase()+e.substr(1).toLowerCase()===e&&(c="capitalized");var d=t;for(n=0;n)+?/g),s={toggleBold:C,toggleItalic:w,drawLink:I,toggleHeadingSmaller:A,toggleHeadingBigger:E,drawImage:z,toggleBlockquote:F,toggleOrderedList:N,toggleUnorderedList:B,toggleCodeBlock:S,togglePreview:U,toggleStrikethrough:k,toggleHeading1:T,toggleHeading2:L,toggleHeading3:M,cleanBlock:O,drawTable:P,drawHorizontalRule:_,undo:W,redo:j,toggleSideBySide:q,toggleFullScreen:D},u={toggleBold:"Cmd-B",toggleItalic:"Cmd-I",drawLink:"Cmd-K",toggleHeadingSmaller:"Cmd-H",toggleHeadingBigger:"Shift-Cmd-H",cleanBlock:"Cmd-E",drawImage:"Cmd-Alt-I",toggleBlockquote:"Cmd-'",toggleOrderedList:"Cmd-Alt-L",toggleUnorderedList:"Cmd-L",toggleCodeBlock:"Cmd-Alt-C",togglePreview:"Cmd-P",toggleSideBySide:"F9",toggleFullScreen:"F11"},c=function(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e.substr(0,4)))&&(t=!0),t};function d(e){return e=a?e.replace("Ctrl","Cmd"):e.replace("Cmd","Ctrl")}var h={};function f(e){return h[e]||(h[e]=new RegExp("\\s*"+e+"(\\s*)","g"))}function p(e,t){if(e&&t){var n=f(t);e.className.match(n)||(e.className+=" "+t)}}function m(e,t){if(e&&t){var n=f(t);e.className.match(n)&&(e.className=e.className.replace(n,"$1"))}}function g(e,t,n,r){var i=v(e,!1,t,n,"button",r);i.className+=" easymde-dropdown",i.onclick=function(){i.focus()};var o=document.createElement("div");o.className="easymde-dropdown-content";for(var a=0;a=0&&!n(h=s.getLineHandle(o));o--);var g,v,x,y,b=r(s.getTokenAt({line:o,ch:1})).fencedChars;n(s.getLineHandle(u.line))?(g="",v=u.line):n(s.getLineHandle(u.line-1))?(g="",v=u.line-1):(g=b+"\n",v=u.line),n(s.getLineHandle(c.line))?(x="",y=c.line,0===c.ch&&(y+=1)):0!==c.ch&&n(s.getLineHandle(c.line+1))?(x="",y=c.line+1):(x=b+"\n",y=c.line+1),0===c.ch&&(y-=1),s.operation((function(){s.replaceRange(x,{line:y,ch:0},{line:y+(x?0:1),ch:0}),s.replaceRange(g,{line:v,ch:0},{line:v+(g?0:1),ch:0})})),s.setSelection({line:v+(g?1:0),ch:0},{line:y+(g?1:-1),ch:0}),s.focus()}else{var D=u.line;if(n(s.getLineHandle(u.line))&&("fenced"===i(s,u.line+1)?(o=u.line,D=u.line+1):(a=u.line,D=u.line-1)),void 0===o)for(o=D;o>=0&&!n(h=s.getLineHandle(o));o--);if(void 0===a)for(l=s.lineCount(),a=D;a=0;o--)if(!(h=s.getLineHandle(o)).text.match(/^\s*$/)&&"indented"!==i(s,o,h)){o+=1;break}for(l=s.lineCount(),a=u.line;a ]+|[0-9]+(.|\)))[ ]*/,""),e.replaceRange(t,{line:i,ch:0},{line:i,ch:99999999999999})}(e.codemirror)}function I(e){var t=e.codemirror,n=y(t),r=e.options,i="https://";if(r.promptURLs&&!(i=prompt(r.promptTexts.link,"https://")))return!1;$(t,n.link,r.insertTexts.link,i)}function z(e){var t=e.codemirror,n=y(t),r=e.options,i="https://";if(r.promptURLs&&!(i=prompt(r.promptTexts.image,"https://")))return!1;$(t,n.image,r.insertTexts.image,i)}function H(e){e.openBrowseFileWindow()}function R(e,t){var n=e.codemirror,r=y(n),i=e.options,o=t.substr(t.lastIndexOf("/")+1),a=o.substring(o.lastIndexOf(".")+1).replace(/\?.*$/,"").toLowerCase();if(["png","jpg","jpeg","gif","svg"].includes(a))$(n,r.image,i.insertTexts.uploadedImage,t);else{var l=i.insertTexts.link;l[0]="["+o,$(n,r.link,l,t)}e.updateStatusBar("upload-image",e.options.imageTexts.sbOnUploaded.replace("#image_name#",o)),setTimeout((function(){e.updateStatusBar("upload-image",e.options.imageTexts.sbInit)}),1e3)}function P(e){var t=e.codemirror,n=y(t),r=e.options;$(t,n.table,r.insertTexts.table)}function _(e){var t=e.codemirror,n=y(t),r=e.options;$(t,n.image,r.insertTexts.horizontalRule)}function W(e){var t=e.codemirror;t.undo(),t.focus()}function j(e){var t=e.codemirror;t.redo(),t.focus()}function q(e){var t=e.codemirror,n=t.getWrapperElement(),r=n.nextSibling,i=e.toolbarElements&&e.toolbarElements["side-by-side"],o=!1,a=n.parentNode;/editor-preview-active-side/.test(r.className)?(!1===e.options.sideBySideFullscreen&&m(a,"sided--no-fullscreen"),r.className=r.className.replace(/\s*editor-preview-active-side\s*/g,""),i&&(i.className=i.className.replace(/\s*active\s*/g,"")),n.className=n.className.replace(/\s*CodeMirror-sided\s*/g," ")):(setTimeout((function(){t.getOption("fullScreen")||(!1===e.options.sideBySideFullscreen?p(a,"sided--no-fullscreen"):D(e)),r.className+=" editor-preview-active-side"}),1),i&&(i.className+=" active"),n.className+=" CodeMirror-sided",o=!0);var l=n.lastChild;if(/editor-preview-active/.test(l.className)){l.className=l.className.replace(/\s*editor-preview-active\s*/g,"");var s=e.toolbarElements.preview,u=e.toolbar_div;s.className=s.className.replace(/\s*active\s*/g,""),u.className=u.className.replace(/\s*disabled-for-preview*/g,"")}if(t.sideBySideRenderingFunction||(t.sideBySideRenderingFunction=function(){var t=e.options.previewRender(e.value(),r);null!=t&&(r.innerHTML=t)}),o){var c=e.options.previewRender(e.value(),r);null!=c&&(r.innerHTML=c),t.on("update",t.sideBySideRenderingFunction)}else t.off("update",t.sideBySideRenderingFunction);t.refresh()}function U(e){var t=e.codemirror,n=t.getWrapperElement(),r=e.toolbar_div,i=!!e.options.toolbar&&e.toolbarElements.preview,o=n.lastChild,a=t.getWrapperElement().nextSibling;if(/editor-preview-active-side/.test(a.className)&&q(e),!o||!/editor-preview-full/.test(o.className)){if((o=document.createElement("div")).className="editor-preview-full",e.options.previewClass)if(Array.isArray(e.options.previewClass))for(var l=0;l\s+/,"unordered-list":r,"ordered-list":r},u=function(e,t,o){var a=r.exec(t),l=function(e,t){return{quote:">","unordered-list":n,"ordered-list":"%%i."}[e].replace("%%i",t)}(e,c);return null!==a?(function(e,t){var r=new RegExp({quote:">","unordered-list":"\\"+n,"ordered-list":"\\d+."}[e]);return t&&r.test(t)}(e,a[2])&&(l=""),t=a[1]+l+a[3]+t.replace(i,"").replace(s[e],"$1")):0==o&&(t=l+" "+t),t},c=1,d=a.line;d<=l.line;d++)!function(n){var r=e.getLine(n);o[t]?r=r.replace(s[t],"$1"):("unordered-list"==t&&(r=u("ordered-list",r,!0)),r=u(t,r,!1),c+=1),e.replaceRange(r,{line:n,ch:0},{line:n,ch:99999999999999})}(d);e.focus()}}function X(e,t,n,r){if(!/editor-preview-active/.test(e.codemirror.getWrapperElement().lastChild.className)){r=void 0===r?n:r;var i,o=e.codemirror,a=y(o),l=n,s=r,u=o.getCursor("start"),c=o.getCursor("end");a[t]?(l=(i=o.getLine(u.line)).slice(0,u.ch),s=i.slice(u.ch),"bold"==t?(l=l.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,""),s=s.replace(/(\*\*|__)/,"")):"italic"==t?(l=l.replace(/(\*|_)(?![\s\S]*(\*|_))/,""),s=s.replace(/(\*|_)/,"")):"strikethrough"==t&&(l=l.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,""),s=s.replace(/(\*\*|~~)/,"")),o.replaceRange(l+s,{line:u.line,ch:0},{line:u.line,ch:99999999999999}),"bold"==t||"strikethrough"==t?(u.ch-=2,u!==c&&(c.ch-=2)):"italic"==t&&(u.ch-=1,u!==c&&(c.ch-=1))):(i=o.getSelection(),"bold"==t?i=(i=i.split("**").join("")).split("__").join(""):"italic"==t?i=(i=i.split("*").join("")).split("_").join(""):"strikethrough"==t&&(i=i.split("~~").join("")),o.replaceSelection(l+i+s),u.ch+=n.length,c.ch=u.ch+i.length),o.setSelection(u,c),o.focus()}}function K(e,t){if(Math.abs(e)<1024)return""+e+t[0];var n=0;do{e/=1024,++n}while(Math.abs(e)>=1024&&n=19968?n+=t[r].length:n+=1;return n}var J={bold:{name:"bold",action:C,className:"fa fa-bold",title:"Bold",default:!0},italic:{name:"italic",action:w,className:"fa fa-italic",title:"Italic",default:!0},strikethrough:{name:"strikethrough",action:k,className:"fa fa-strikethrough",title:"Strikethrough"},heading:{name:"heading",action:A,className:"fa fa-header fa-heading",title:"Heading",default:!0},"heading-smaller":{name:"heading-smaller",action:A,className:"fa fa-header fa-heading header-smaller",title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:E,className:"fa fa-header fa-heading header-bigger",title:"Bigger Heading"},"heading-1":{name:"heading-1",action:T,className:"fa fa-header fa-heading header-1",title:"Big Heading"},"heading-2":{name:"heading-2",action:L,className:"fa fa-header fa-heading header-2",title:"Medium Heading"},"heading-3":{name:"heading-3",action:M,className:"fa fa-header fa-heading header-3",title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:S,className:"fa fa-code",title:"Code"},quote:{name:"quote",action:F,className:"fa fa-quote-left",title:"Quote",default:!0},"unordered-list":{name:"unordered-list",action:B,className:"fa fa-list-ul",title:"Generic List",default:!0},"ordered-list":{name:"ordered-list",action:N,className:"fa fa-list-ol",title:"Numbered List",default:!0},"clean-block":{name:"clean-block",action:O,className:"fa fa-eraser",title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:I,className:"fa fa-link",title:"Create Link",default:!0},image:{name:"image",action:z,className:"fa fa-image",title:"Insert Image",default:!0},"upload-image":{name:"upload-image",action:H,className:"fa fa-image",title:"Import an image"},table:{name:"table",action:P,className:"fa fa-table",title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:_,className:"fa fa-minus",title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:U,className:"fa fa-eye",noDisable:!0,title:"Toggle Preview",default:!0},"side-by-side":{name:"side-by-side",action:q,className:"fa fa-columns",noDisable:!0,noMobile:!0,title:"Toggle Side by Side",default:!0},fullscreen:{name:"fullscreen",action:D,className:"fa fa-arrows-alt",noDisable:!0,noMobile:!0,title:"Toggle Fullscreen",default:!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://www.markdownguide.org/basic-syntax/",className:"fa fa-question-circle",noDisable:!0,title:"Markdown Guide",default:!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:W,className:"fa fa-undo",noDisable:!0,title:"Undo"},redo:{name:"redo",action:j,className:"fa fa-repeat fa-redo",noDisable:!0,title:"Redo"}},ee={link:["[","](#url#)"],image:["![](","#url#)"],uploadedImage:["![](#url#)",""],table:["","\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text | Text | Text |\n\n"],horizontalRule:["","\n\n-----\n\n"]},te={link:"URL for the link:",image:"URL of the image:"},ne={locale:"en-US",format:{hour:"2-digit",minute:"2-digit"}},re={bold:"**",code:"```",italic:"*"},ie={sbInit:"Attach files by drag and dropping or pasting from clipboard.",sbOnDragEnter:"Drop image to upload it.",sbOnDrop:"Uploading image #images_names#...",sbProgress:"Uploading #file_name#: #progress#%",sbOnUploaded:"Uploaded #image_name#",sizeUnits:" B, KB, MB"},oe={noFileGiven:"You must select a file.",typeNotAllowed:"This image type is not allowed.",fileTooLarge:"Image #image_name# is too big (#image_size#).\nMaximum file size is #image_max_size#.",importError:"Something went wrong when uploading the image #image_name#."};function ae(e){(e=e||{}).parent=this;var t=!0;if(!1===e.autoDownloadFontAwesome&&(t=!1),!0!==e.autoDownloadFontAwesome)for(var n=document.styleSheets,r=0;r-1&&(t=!1);if(t){var i=document.createElement("link");i.rel="stylesheet",i.href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css",document.getElementsByTagName("head")[0].appendChild(i)}if(e.element)this.element=e.element;else if(null===e.element)return void console.log("EasyMDE: Error. No element was found.");if(void 0===e.toolbar)for(var o in e.toolbar=[],J)Object.prototype.hasOwnProperty.call(J,o)&&(-1!=o.indexOf("separator-")&&e.toolbar.push("|"),(!0===J[o].default||e.showIcons&&e.showIcons.constructor===Array&&-1!=e.showIcons.indexOf(o))&&e.toolbar.push(o));if(Object.prototype.hasOwnProperty.call(e,"previewClass")||(e.previewClass="editor-preview"),Object.prototype.hasOwnProperty.call(e,"status")||(e.status=["autosave","lines","words","cursor"],e.uploadImage&&e.status.unshift("upload-image")),e.previewRender||(e.previewRender=function(e){return this.parent.markdown(e)}),e.parsingConfig=Y({highlightFormatting:!0},e.parsingConfig||{}),e.insertTexts=Y({},ee,e.insertTexts||{}),e.promptTexts=Y({},te,e.promptTexts||{}),e.blockStyles=Y({},re,e.blockStyles||{}),null!=e.autosave&&(e.autosave.timeFormat=Y({},ne,e.autosave.timeFormat||{})),e.shortcuts=Y({},u,e.shortcuts||{}),e.maxHeight=e.maxHeight||void 0,e.direction=e.direction||"ltr",void 0!==e.maxHeight?e.minHeight=e.maxHeight:e.minHeight=e.minHeight||"300px",e.errorCallback=e.errorCallback||function(e){alert(e)},e.uploadImage=e.uploadImage||!1,e.imageMaxSize=e.imageMaxSize||2097152,e.imageAccept=e.imageAccept||"image/png, image/jpeg",e.imageTexts=Y({},ie,e.imageTexts||{}),e.errorMessages=Y({},oe,e.errorMessages||{}),null!=e.autosave&&null!=e.autosave.unique_id&&""!=e.autosave.unique_id&&(e.autosave.uniqueId=e.autosave.unique_id),e.overlayMode&&void 0===e.overlayMode.combine&&(e.overlayMode.combine=!0),this.options=e,this.render(),!e.initialValue||this.options.autosave&&!0===this.options.autosave.foundSavedValue||this.value(e.initialValue),e.uploadImage){var a=this;this.codemirror.on("dragenter",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("dragend",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("dragleave",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("dragover",(function(e,t){a.updateStatusBar("upload-image",a.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()})),this.codemirror.on("drop",(function(t,n){n.stopPropagation(),n.preventDefault(),e.imageUploadFunction?a.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.dataTransfer.files):a.uploadImages(n.dataTransfer.files)})),this.codemirror.on("paste",(function(t,n){e.imageUploadFunction?a.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.clipboardData.files):a.uploadImages(n.clipboardData.files)}))}}function le(){if("object"!=typeof localStorage)return!1;try{localStorage.setItem("smde_localStorage",1),localStorage.removeItem("smde_localStorage")}catch(e){return!1}return!0}ae.prototype.uploadImages=function(e,t,n){if(0!==e.length){for(var r=[],i=0;i$/,' target="_blank">');e=e.replace(n,r)}}return e}(r))}},ae.prototype.render=function(e){if(e||(e=this.element||document.getElementsByTagName("textarea")[0]),!this._rendered||this._rendered!==e){this.element=e;var t,n,o=this.options,a=this,l={};for(var u in o.shortcuts)null!==o.shortcuts[u]&&null!==s[u]&&function(e){l[d(o.shortcuts[e])]=function(){var t=s[e];"function"==typeof t?t(a):"string"==typeof t&&window.open(t,"_blank")}}(u);if(l.Enter="newlineAndIndentContinueMarkdownList",l.Tab="tabAndIndentMarkdownList",l["Shift-Tab"]="shiftTabAndUnindentMarkdownList",l.Esc=function(e){e.getOption("fullScreen")&&D(a)},this.documentOnKeyDown=function(e){27==(e=e||window.event).keyCode&&a.codemirror.getOption("fullScreen")&&D(a)},document.addEventListener("keydown",this.documentOnKeyDown,!1),o.overlayMode?(r.defineMode("overlay-mode",(function(e){return r.overlayMode(r.getMode(e,!1!==o.spellChecker?"spell-checker":"gfm"),o.overlayMode.mode,o.overlayMode.combine)})),t="overlay-mode",(n=o.parsingConfig).gitHubSpice=!1):((t=o.parsingConfig).name="gfm",t.gitHubSpice=!1),!1!==o.spellChecker&&(t="spell-checker",(n=o.parsingConfig).name="gfm",n.gitHubSpice=!1,"function"==typeof o.spellChecker?o.spellChecker({codeMirrorInstance:r}):i({codeMirrorInstance:r})),this.codemirror=r.fromTextArea(e,{mode:t,backdrop:n,theme:null!=o.theme?o.theme:"easymde",tabSize:null!=o.tabSize?o.tabSize:2,indentUnit:null!=o.tabSize?o.tabSize:2,indentWithTabs:!1!==o.indentWithTabs,lineNumbers:!0===o.lineNumbers,autofocus:!0===o.autofocus,extraKeys:l,direction:o.direction,lineWrapping:!1!==o.lineWrapping,allowDropFileTypes:["text/plain"],placeholder:o.placeholder||e.getAttribute("placeholder")||"",styleSelectedText:null!=o.styleSelectedText?o.styleSelectedText:!c(),scrollbarStyle:null!=o.scrollbarStyle?o.scrollbarStyle:"native",configureMouse:function(e,t,n){return{addNew:!1}},inputStyle:null!=o.inputStyle?o.inputStyle:c()?"contenteditable":"textarea",spellcheck:null==o.nativeSpellcheck||o.nativeSpellcheck,autoRefresh:null!=o.autoRefresh&&o.autoRefresh}),this.codemirror.getScrollerElement().style.minHeight=o.minHeight,void 0!==o.maxHeight&&(this.codemirror.getScrollerElement().style.height=o.maxHeight),!0===o.forceSync){var h=this.codemirror;h.on("change",(function(){h.save()}))}this.gui={};var f=document.createElement("div");f.classList.add("EasyMDEContainer");var p=this.codemirror.getWrapperElement();p.parentNode.insertBefore(f,p),f.appendChild(p),!1!==o.toolbar&&(this.gui.toolbar=this.createToolbar()),!1!==o.status&&(this.gui.statusbar=this.createStatusbar()),null!=o.autosave&&!0===o.autosave.enabled&&(this.autosave(),this.codemirror.on("change",(function(){clearTimeout(a._autosave_timeout),a._autosave_timeout=setTimeout((function(){a.autosave()}),a.options.autosave.submit_delay||a.options.autosave.delay||1e3)})));var m=this;this.codemirror.on("update",(function(){o.previewImagesInEditor&&f.querySelectorAll(".cm-image-marker").forEach((function(e){var t=e.parentElement;if(t.innerText.match(/^!\[.*?\]\(.*\)/g)&&!t.hasAttribute("data-img-src")){var n=t.innerText.match("\\((.*)\\)");if(window.EMDEimagesCache||(window.EMDEimagesCache={}),n&&n.length>=2){var r=n[1];if(window.EMDEimagesCache[r])v(t,window.EMDEimagesCache[r]);else{var i=document.createElement("img");i.onload=function(){window.EMDEimagesCache[r]={naturalWidth:i.naturalWidth,naturalHeight:i.naturalHeight,url:r},v(t,window.EMDEimagesCache[r])},i.src=r}}}}))})),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element;var g=this.codemirror;setTimeout(function(){g.refresh()}.bind(g),0)}function v(e,t){var n,r;e.setAttribute("data-img-src",t.url),e.setAttribute("style","--bg-image:url("+t.url+");--width:"+t.naturalWidth+"px;--height:"+(n=t.naturalWidth,r=t.naturalHeight,nthis.options.imageMaxSize)i(o(this.options.errorMessages.fileTooLarge));else{var a=new FormData;a.append("image",e),r.options.imageCSRFToken&&a.append("csrfmiddlewaretoken",r.options.imageCSRFToken);var l=new XMLHttpRequest;l.upload.onprogress=function(t){if(t.lengthComputable){var n=""+Math.round(100*t.loaded/t.total);r.updateStatusBar("upload-image",r.options.imageTexts.sbProgress.replace("#file_name#",e.name).replace("#progress#",n))}},l.open("POST",this.options.imageUploadEndpoint),l.onload=function(){try{var e=JSON.parse(this.responseText)}catch(e){return console.error("EasyMDE: The server did not return a valid json."),void i(o(r.options.errorMessages.importError))}200===this.status&&e&&!e.error&&e.data&&e.data.filePath?t((r.options.imagePathAbsolute?"":window.location.origin+"/")+e.data.filePath):e.error&&e.error in r.options.errorMessages?i(o(r.options.errorMessages[e.error])):e.error?i(o(e.error)):(console.error("EasyMDE: Received an unexpected response after uploading the image."+this.status+" ("+this.statusText+")"),i(o(r.options.errorMessages.importError)))},l.onerror=function(e){console.error("EasyMDE: An unexpected error occurred when trying to upload the image."+e.target.status+" ("+e.target.statusText+")"),i(r.options.errorMessages.importError)},l.send(a)}},ae.prototype.uploadImageUsingCustomFunction=function(e,t){var n=this;e.apply(this,[t,function(e){R(n,e)},function(e){var r=function(e){var r=n.options.imageTexts.sizeUnits.split(",");return e.replace("#image_name#",t.name).replace("#image_size#",K(t.size,r)).replace("#image_max_size#",K(n.options.imageMaxSize,r))}(e);n.updateStatusBar("upload-image",r),setTimeout((function(){n.updateStatusBar("upload-image",n.options.imageTexts.sbInit)}),1e4),n.options.errorCallback(r)}])},ae.prototype.setPreviewMaxHeight=function(){var e=this.codemirror.getWrapperElement(),t=e.nextSibling,n=parseInt(window.getComputedStyle(e).paddingTop),r=parseInt(window.getComputedStyle(e).borderTopWidth),i=(parseInt(this.options.maxHeight)+2*n+2*r).toString()+"px";t.style.height=i},ae.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;if(!n||!/editor-preview-side/.test(n.className)){if((n=document.createElement("div")).className="editor-preview-side",this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var r=0;r -
    - ${item.label} - - - `; - - if (user_settings.SEARCH_SHOW_STOCK_LEVELS) { - html += partStockLabel( - item.data, - { - classes: 'badge-right', - } - ); - } - - html += ''; - - return $('
  • ').append(html).appendTo(ul); - }; - }, - select: function( event, ui ) { - window.location = '/part/' + ui.item.id + '/'; - }, - minLength: 2, - classes: { - 'ui-autocomplete': 'dropdown-menu search-menu', - }, - position: { - my : "right top", - at: "right bottom" - } - }); - } - // Generate brand-icons $('.brand-icon').each(function(i, obj) { loadBrandIcon($(this), $(this).attr('brand_name')); @@ -231,8 +156,13 @@ function inventreeDocReady() { stopNotificationWatcher(); }); - $('#offcanvasRight').on('show.bs.offcanvas', openNotificationPanel); // listener for opening the notification panel - $('#offcanvasRight').on('hidden.bs.offcanvas', closeNotificationPanel); // listener for closing the notification panel + // Calbacks for search panel + $('#offcanvas-search').on('shown.bs.offcanvas', openSearchPanel); + $('#offcanvas-search').on('hidden.bs.offcanvas', closeSearchPanel); + + // Callbacks for notifications panel + $('#offcanvas-notification').on('show.bs.offcanvas', openNotificationPanel); // listener for opening the notification panel + $('#offcanvas-notification').on('hidden.bs.offcanvas', closeNotificationPanel); // listener for closing the notification panel } diff --git a/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.js b/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.js index aa871b2a59..bfed42f715 100644 --- a/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.js +++ b/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.js @@ -1,4 +1,4 @@ -/*! jQuery UI - v1.12.1 - 2021-07-18 +/*! jQuery UI - v1.13.0 - 2021-10-07 * http://jqueryui.com * Includes: widget.js, position.js, disable-selection.js, keycode.js, unique-id.js, widgets/resizable.js, widgets/autocomplete.js, widgets/menu.js, widgets/mouse.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ @@ -17,11 +17,11 @@ $.ui = $.ui || {}; -var version = $.ui.version = "1.12.1"; +var version = $.ui.version = "1.13.1"; /*! - * jQuery UI Widget 1.12.1 + * jQuery UI Widget 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -744,7 +744,7 @@ var widget = $.widget; /*! - * jQuery UI Position 1.12.1 + * jQuery UI Position 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1232,7 +1232,7 @@ var position = $.ui.position; /*! - * jQuery UI Disable Selection 1.12.1 + * jQuery UI Disable Selection 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1268,7 +1268,7 @@ var disableSelection = $.fn.extend( { /*! - * jQuery UI Keycode 1.12.1 + * jQuery UI Keycode 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1303,7 +1303,7 @@ var keycode = $.ui.keyCode = { /*! - * jQuery UI Unique ID 1.12.1 + * jQuery UI Unique ID 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1347,7 +1347,7 @@ var uniqueId = $.fn.extend( { var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); /*! - * jQuery UI Mouse 1.12.1 + * jQuery UI Mouse 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1368,7 +1368,7 @@ $( document ).on( "mouseup", function() { } ); var widgetsMouse = $.widget( "ui.mouse", { - version: "1.12.1", + version: "1.13.0", options: { cancel: "input, textarea, button, select, option", distance: 1, @@ -1592,7 +1592,7 @@ var plugin = $.ui.plugin = { /*! - * jQuery UI Resizable 1.12.1 + * jQuery UI Resizable 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -1612,7 +1612,7 @@ var plugin = $.ui.plugin = { $.widget( "ui.resizable", $.ui.mouse, { - version: "1.12.1", + version: "1.13.0", widgetEventPrefix: "resize", options: { alsoResize: false, @@ -2806,7 +2806,7 @@ var safeActiveElement = $.ui.safeActiveElement = function( document ) { /*! - * jQuery UI Menu 1.12.1 + * jQuery UI Menu 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -2826,7 +2826,7 @@ var safeActiveElement = $.ui.safeActiveElement = function( document ) { var widgetsMenu = $.widget( "ui.menu", { - version: "1.12.1", + version: "1.13.0", defaultElement: "
      ", delay: 300, options: { @@ -3461,7 +3461,7 @@ var widgetsMenu = $.widget( "ui.menu", { /*! - * jQuery UI Autocomplete 1.12.1 + * jQuery UI Autocomplete 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -3481,7 +3481,7 @@ var widgetsMenu = $.widget( "ui.menu", { $.widget( "ui.autocomplete", { - version: "1.12.1", + version: "1.13.0", defaultElement: "", options: { appendTo: null, diff --git a/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js b/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js index 9a48ddd9bd..d588421b84 100644 --- a/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js +++ b/InvenTree/InvenTree/static/script/jquery-ui/jquery-ui.min.js @@ -1,6 +1,6 @@ -/*! jQuery UI - v1.12.1 - 2021-07-18 +/*! jQuery UI - v1.13.0 - 2021-10-07 * http://jqueryui.com * Includes: widget.js, position.js, disable-selection.js, keycode.js, unique-id.js, widgets/resizable.js, widgets/autocomplete.js, widgets/menu.js, widgets/mouse.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ -!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(z){z.ui=z.ui||{};z.ui.version="1.12.1";var n,i=0,a=Array.prototype.slice;z.cleanData=(n=z.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)try{(e=z._data(i,"events"))&&e.remove&&z(i).triggerHandler("remove")}catch(t){}n(t)}),z.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],l=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=z.Widget),z.isArray(e)&&(e=z.extend.apply(null,[{}].concat(e))),z.expr[":"][l.toLowerCase()]=function(t){return!!z.data(t,l)},z[a]=z[a]||{},s=z[a][t],n=z[a][t]=function(t,e){if(!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},z.extend(n,s,{version:e.version,_proto:z.extend({},e),_childConstructors:[]}),(o=new i).options=z.widget.extend({},o.options),z.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}z.isFunction(s)?h[e]=function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:h[e]=s}),n.prototype=z.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:l}),s?(z.each(s._childConstructors,function(t,e){var i=e.prototype;z.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),z.widget.bridge(t,n),n},z.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=z(e||this.defaultElement||this)[0],this.element=z(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=z(),this.hoverable=z(),this.focusable=z(),this.classesElementLookup={},e!==this&&(z.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=z(e.style?e.ownerDocument:e.document||e),this.window=z(this.document[0].defaultView||this.document[0].parentWindow)),this.options=z.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:z.noop,_create:z.noop,_init:z.noop,destroy:function(){var i=this;this._destroy(),z.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:z.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return z.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=z.widget.extend({},this.options[t]),n=0;n
      "),i=e.children()[0];return z("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),h.offset(z.extend(r,{using:t}))})},z.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),z.ui.plugin={add:function(t,e,i){var s,n=z.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&z(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();function t(t){z(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){this._super(t,e),"handles"===t&&(this._removeHandles(),this._setupHandles())},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(z(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=z(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(n);this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=z(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=z(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=z(this.handles[e])[0])!==t.target&&!z.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=z(s.containment).scrollLeft()||0,i+=z(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=z(".ui-resizable-"+this.axis).css("cursor"),z("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),z.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(z.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),z("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,r=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&r&&(t.left=a-e.minWidth),s&&r&&(t.left=a-e.maxWidth),h&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){z.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),z.ui.plugin.add("resizable","animate",{stop:function(e){var i=z(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(z.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&z(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),z.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=z(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof z?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=z(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:z(document),left:0,top:0,width:z(document).width(),height:z(document).height()||document.body.parentNode.scrollHeight}):(i=z(h),s=[],z(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=z(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=z(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=z(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),z.ui.plugin.add("resizable","alsoResize",{start:function(){var t=z(this).resizable("instance").options;z(t.alsoResize).each(function(){var t=z(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=z(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};z(s.alsoResize).each(function(){var t=z(this),s=z(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];z.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){z(this).removeData("ui-resizable-alsoresize")}}),z.ui.plugin.add("resizable","ghost",{start:function(){var t=z(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==z.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=z(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=z(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),z.ui.plugin.add("resizable","grid",{resize:function(){var t,e=z(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=a[0]||1,r=a[1]||1,u=Math.round((s.width-n.width)/l)*l,c=Math.round((s.height-n.height)/r)*r,d=n.width+u,p=n.height+c,m=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=a,g&&(d+=l),s&&(p+=r),m&&(d-=l),f&&(p-=r),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.top=o.top-c):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.left=o.left-u):((p-r<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(t){var e=z(t.target),i=z(z.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var e,i;this.previousFilter||(e=z(t.target).closest(".ui-menu-item"),i=z(t.currentTarget),e[0]===i[0]&&(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i)))},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(t){this._delay(function(){z.contains(this.element[0],z.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=z(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case z.ui.keyCode.PAGE_UP:this.previousPage(t);break;case z.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case z.ui.keyCode.HOME:this._move("first","first",t);break;case z.ui.keyCode.END:this._move("last","last",t);break;case z.ui.keyCode.UP:this.previous(t);break;case z.ui.keyCode.DOWN:this.next(t);break;case z.ui.keyCode.LEFT:this.collapse(t);break;case z.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case z.ui.keyCode.ENTER:case z.ui.keyCode.SPACE:this._activate(t);break;case z.ui.keyCode.ESCAPE:this.collapse(t);break;default:n=!1,e=this.previousFilter||"",s=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=z(this),e=t.prev(),i=z("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=z(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!z.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(z.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(z.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),this._change(t))}}),this._initSource(),this.menu=z("
        ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==z.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(t,e){var i;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){z(t.target).trigger(t.originalEvent)});i=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:i})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(i.value),(i=e.item.attr("aria-label")||i.value)&&z.trim(i).length&&(this.liveRegion.children().hide(),z("
        ").text(i).appendTo(this.liveRegion))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==z.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=z("
        ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||z.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return(t=t&&(t.jquery||t.nodeType?z(t):this.document.find(t).eq(0)))&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var i,s,n=this;z.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(z.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=z.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(!t||e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(z("
        ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),z.extend(z.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(z.ui.autocomplete.escapeRegex(e),"i");return z.grep(t,function(t){return i.test(t.label||t.value||t)})}}),z.widget("ui.autocomplete",z.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e).appendTo(this.liveRegion))}});z.ui.autocomplete}); \ No newline at end of file +!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(z){z.ui=z.ui||{};z.ui.version="1.13.0";var n,i=0,a=Array.prototype.slice;z.cleanData=(n=z.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)try{(e=z._data(i,"events"))&&e.remove&&z(i).triggerHandler("remove")}catch(t){}n(t)}),z.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],l=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=z.Widget),z.isArray(e)&&(e=z.extend.apply(null,[{}].concat(e))),z.expr[":"][l.toLowerCase()]=function(t){return!!z.data(t,l)},z[a]=z[a]||{},s=z[a][t],n=z[a][t]=function(t,e){if(!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},z.extend(n,s,{version:e.version,_proto:z.extend({},e),_childConstructors:[]}),(o=new i).options=z.widget.extend({},o.options),z.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}z.isFunction(s)?h[e]=function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:h[e]=s}),n.prototype=z.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:l}),s?(z.each(s._childConstructors,function(t,e){var i=e.prototype;z.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),z.widget.bridge(t,n),n},z.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=z(e||this.defaultElement||this)[0],this.element=z(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=z(),this.hoverable=z(),this.focusable=z(),this.classesElementLookup={},e!==this&&(z.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=z(e.style?e.ownerDocument:e.document||e),this.window=z(this.document[0].defaultView||this.document[0].parentWindow)),this.options=z.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:z.noop,_create:z.noop,_init:z.noop,destroy:function(){var i=this;this._destroy(),z.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:z.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return z.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=z.widget.extend({},this.options[t]),n=0;n
        "),i=e.children()[0];return z("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),h.offset(z.extend(r,{using:t}))})},z.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),z.ui.plugin={add:function(t,e,i){var s,n=z.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
        ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&z(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();function t(t){z(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){this._super(t,e),"handles"===t&&(this._removeHandles(),this._setupHandles())},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(z(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=z(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(n);this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=z(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=z(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=z(this.handles[e])[0])!==t.target&&!z.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=z(s.containment).scrollLeft()||0,i+=z(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=z(".ui-resizable-"+this.axis).css("cursor"),z("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),z.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(z.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),z("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,r=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&r&&(t.left=a-e.minWidth),s&&r&&(t.left=a-e.maxWidth),h&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
        "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return z.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return z.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){z.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),z.ui.plugin.add("resizable","animate",{stop:function(e){var i=z(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(z.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&z(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),z.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=z(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof z?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=z(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:z(document),left:0,top:0,width:z(document).width(),height:z(document).height()||document.body.parentNode.scrollHeight}):(i=z(h),s=[],z(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=z(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=z(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=z(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&z(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),z.ui.plugin.add("resizable","alsoResize",{start:function(){var t=z(this).resizable("instance").options;z(t.alsoResize).each(function(){var t=z(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=z(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};z(s.alsoResize).each(function(){var t=z(this),s=z(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];z.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){z(this).removeData("ui-resizable-alsoresize")}}),z.ui.plugin.add("resizable","ghost",{start:function(){var t=z(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==z.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=z(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=z(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),z.ui.plugin.add("resizable","grid",{resize:function(){var t,e=z(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=a[0]||1,r=a[1]||1,u=Math.round((s.width-n.width)/l)*l,c=Math.round((s.height-n.height)/r)*r,d=n.width+u,p=n.height+c,m=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=a,g&&(d+=l),s&&(p+=r),m&&(d-=l),f&&(p-=r),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.top=o.top-c):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=p,e.position.left=o.left-u):((p-r<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(t){var e=z(t.target),i=z(z.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var e,i;this.previousFilter||(e=z(t.target).closest(".ui-menu-item"),i=z(t.currentTarget),e[0]===i[0]&&(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i)))},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(t){this._delay(function(){z.contains(this.element[0],z.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=z(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case z.ui.keyCode.PAGE_UP:this.previousPage(t);break;case z.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case z.ui.keyCode.HOME:this._move("first","first",t);break;case z.ui.keyCode.END:this._move("last","last",t);break;case z.ui.keyCode.UP:this.previous(t);break;case z.ui.keyCode.DOWN:this.next(t);break;case z.ui.keyCode.LEFT:this.collapse(t);break;case z.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case z.ui.keyCode.ENTER:case z.ui.keyCode.SPACE:this._activate(t);break;case z.ui.keyCode.ESCAPE:this.collapse(t);break;default:n=!1,e=this.previousFilter||"",s=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=z(this),e=t.prev(),i=z("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=z(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!z.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(z.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(z.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=z.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),this._change(t))}}),this._initSource(),this.menu=z("
          ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==z.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(t,e){var i;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){z(t.target).trigger(t.originalEvent)});i=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:i})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(i.value),(i=e.item.attr("aria-label")||i.value)&&z.trim(i).length&&(this.liveRegion.children().hide(),z("
          ").text(i).appendTo(this.liveRegion))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==z.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=z("
          ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||z.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return(t=t&&(t.jquery||t.nodeType?z(t):this.document.find(t).eq(0)))&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var i,s,n=this;z.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(z.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=z.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(!t||e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(z("
          ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),z.extend(z.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(z.ui.autocomplete.escapeRegex(e),"i");return z.grep(t,function(t){return i.test(t.label||t.value||t)})}}),z.widget("ui.autocomplete",z.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e).appendTo(this.liveRegion))}});z.ui.autocomplete}); \ No newline at end of file diff --git a/InvenTree/InvenTree/static/script/jquery-ui/package.json b/InvenTree/InvenTree/static/script/jquery-ui/package.json index e3c846e3a8..dc32b2db84 100644 --- a/InvenTree/InvenTree/static/script/jquery-ui/package.json +++ b/InvenTree/InvenTree/static/script/jquery-ui/package.json @@ -2,7 +2,7 @@ "name": "jquery-ui", "title": "jQuery UI", "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.", - "version": "1.12.1", + "version": "1.13.0", "homepage": "http://jqueryui.com", "author": { "name": "jQuery Foundation and other contributors", diff --git a/InvenTree/InvenTree/status_codes.py b/InvenTree/InvenTree/status_codes.py index ffe22039c9..93f213445c 100644 --- a/InvenTree/InvenTree/status_codes.py +++ b/InvenTree/InvenTree/status_codes.py @@ -255,6 +255,9 @@ class StockHistoryCode(StatusCode): # Stock merging operations MERGED_STOCK_ITEMS = 45 + # Convert stock item to variant + CONVERTED_TO_VARIANT = 48 + # Build order codes BUILD_OUTPUT_CREATED = 50 BUILD_OUTPUT_COMPLETED = 55 @@ -294,6 +297,8 @@ class StockHistoryCode(StatusCode): MERGED_STOCK_ITEMS: _('Merged stock items'), + CONVERTED_TO_VARIANT: _('Converted to variant'), + SENT_TO_CUSTOMER: _('Sent to customer'), RETURNED_FROM_CUSTOMER: _('Returned from customer'), diff --git a/InvenTree/InvenTree/test_views.py b/InvenTree/InvenTree/test_views.py index 56d8889984..9de0a58810 100644 --- a/InvenTree/InvenTree/test_views.py +++ b/InvenTree/InvenTree/test_views.py @@ -72,7 +72,7 @@ class ViewTests(TestCase): """ # Change this number as more javascript files are added to the index page - N_SCRIPT_FILES = 37 + N_SCRIPT_FILES = 39 content = self.get_index_page() diff --git a/InvenTree/InvenTree/tests.py b/InvenTree/InvenTree/tests.py index 669628bdea..13f9198d92 100644 --- a/InvenTree/InvenTree/tests.py +++ b/InvenTree/InvenTree/tests.py @@ -252,6 +252,31 @@ class TestSerialNumberExtraction(TestCase): sn = e("1, 2, 3, 4, 5", 5, 1) self.assertEqual(len(sn), 5) + # Test partially specifying serials + sn = e("1, 2, 4+", 5, 1) + self.assertEqual(len(sn), 5) + self.assertEqual(sn, [1, 2, 4, 5, 6]) + + # Test groups are not interpolated if enough serials are supplied + sn = e("1, 2, 3, AF5-69H, 5", 5, 1) + self.assertEqual(len(sn), 5) + self.assertEqual(sn, [1, 2, 3, "AF5-69H", 5]) + + # Test groups are not interpolated with more than one hyphen in a word + sn = e("1, 2, TG-4SR-92, 4+", 5, 1) + self.assertEqual(len(sn), 5) + self.assertEqual(sn, [1, 2, "TG-4SR-92", 4, 5]) + + # Test groups are not interpolated with alpha characters + sn = e("1, A-2, 3+", 5, 1) + self.assertEqual(len(sn), 5) + self.assertEqual(sn, [1, "A-2", 3, 4, 5]) + + # Test multiple placeholders + sn = e("1 2 ~ ~ ~", 5, 3) + self.assertEqual(len(sn), 5) + self.assertEqual(sn, [1, 2, 3, 4, 5]) + sn = e("1-5, 10-15", 11, 1) self.assertIn(3, sn) self.assertIn(13, sn) @@ -307,6 +332,10 @@ class TestSerialNumberExtraction(TestCase): with self.assertRaises(ValidationError): e("10, a, 7-70j", 4, 1) + # Test groups are not interpolated with word characters + with self.assertRaises(ValidationError): + e("1, 2, 3, E-5", 5, 1) + def test_combinations(self): e = helpers.extract_serial_numbers diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index d795b81472..ec8b891f93 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -130,6 +130,7 @@ translated_javascript_urls = [ url(r'^order.js', DynamicJsView.as_view(template_name='js/translated/order.js'), name='order.js'), url(r'^part.js', DynamicJsView.as_view(template_name='js/translated/part.js'), name='part.js'), url(r'^report.js', DynamicJsView.as_view(template_name='js/translated/report.js'), name='report.js'), + url(r'^search.js', DynamicJsView.as_view(template_name='js/translated/search.js'), name='search.js'), url(r'^stock.js', DynamicJsView.as_view(template_name='js/translated/stock.js'), name='stock.js'), url(r'^plugin.js', DynamicJsView.as_view(template_name='js/translated/plugin.js'), name='plugin.js'), url(r'^tables.js', DynamicJsView.as_view(template_name='js/translated/tables.js'), name='tables.js'), diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index f97f134e4a..4663b6a111 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -1,4 +1,5 @@ -""" Version information for InvenTree. +""" +Version information for InvenTree. Provides information on the current InvenTree version """ @@ -8,134 +9,11 @@ import re import common.models +from InvenTree.api_version import INVENTREE_API_VERSION + # InvenTree software version INVENTREE_SW_VERSION = "0.7.0 dev" -# InvenTree API version -INVENTREE_API_VERSION = 34 - -""" -Increment this API version number whenever there is a significant change to the API that any clients need to know about - -v34 -> 2022-03-25 - - Change permissions for "plugin list" API endpoint (now allows any authenticated user) - -v33 -> 2022-03-24 - - Adds "plugins_enabled" information to root API endpoint - -v32 -> 2022-03-19 - - Adds "parameters" detail to Part API endpoint (use ¶meters=true) - - Adds ability to filter PartParameterTemplate API by Part instance - - Adds ability to filter PartParameterTemplate API by PartCategory instance - -v31 -> 2022-03-14 - - Adds "updated" field to SupplierPriceBreakList and SupplierPriceBreakDetail API endpoints - -v30 -> 2022-03-09 - - Adds "exclude_location" field to BuildAutoAllocation API endpoint - - Allows BuildItem API endpoint to be filtered by BomItem relation - -v29 -> 2022-03-08 - - Adds "scheduling" endpoint for predicted stock scheduling information - -v28 -> 2022-03-04 - - Adds an API endpoint for auto allocation of stock items against a build order - - Ref: https://github.com/inventree/InvenTree/pull/2713 - -v27 -> 2022-02-28 - - Adds target_date field to individual line items for purchase orders and sales orders - -v26 -> 2022-02-17 - - Adds API endpoint for uploading a BOM file and extracting data - -v25 -> 2022-02-17 - - Adds ability to filter "part" list endpoint by "in_bom_for" argument - -v24 -> 2022-02-10 - - Adds API endpoint for deleting (cancelling) build order outputs - -v23 -> 2022-02-02 - - Adds API endpoints for managing plugin classes - - Adds API endpoints for managing plugin settings - -v22 -> 2021-12-20 - - Adds API endpoint to "merge" multiple stock items - -v21 -> 2021-12-04 - - Adds support for multiple "Shipments" against a SalesOrder - - Refactors process for stock allocation against a SalesOrder - -v20 -> 2021-12-03 - - Adds ability to filter POLineItem endpoint by "base_part" - - Adds optional "order_detail" to POLineItem list endpoint - -v19 -> 2021-12-02 - - Adds the ability to filter the StockItem API by "part_tree" - - Returns only stock items which match a particular part.tree_id field - -v18 -> 2021-11-15 - - Adds the ability to filter BomItem API by "uses" field - - This returns a list of all BomItems which "use" the specified part - - Includes inherited BomItem objects - -v17 -> 2021-11-09 - - Adds API endpoints for GLOBAL and USER settings objects - - Ref: https://github.com/inventree/InvenTree/pull/2275 - -v16 -> 2021-10-17 - - Adds API endpoint for completing build order outputs - -v15 -> 2021-10-06 - - Adds detail endpoint for SalesOrderAllocation model - - Allows use of the API forms interface for adjusting SalesOrderAllocation objects - -v14 -> 2021-10-05 - - Stock adjustment actions API is improved, using native DRF serializer support - - However adjustment actions now only support 'pk' as a lookup field - -v13 -> 2021-10-05 - - Adds API endpoint to allocate stock items against a BuildOrder - - Updates StockItem API with improved filtering against BomItem data - -v12 -> 2021-09-07 - - Adds API endpoint to receive stock items against a PurchaseOrder - -v11 -> 2021-08-26 - - Adds "units" field to PartBriefSerializer - - This allows units to be introspected from the "part_detail" field in the StockItem serializer - -v10 -> 2021-08-23 - - Adds "purchase_price_currency" to StockItem serializer - - Adds "purchase_price_string" to StockItem serializer - - Purchase price is now writable for StockItem serializer - -v9 -> 2021-08-09 - - Adds "price_string" to part pricing serializers - -v8 -> 2021-07-19 - - Refactors the API interface for SupplierPart and ManufacturerPart models - - ManufacturerPart objects can no longer be created via the SupplierPart API endpoint - -v7 -> 2021-07-03 - - Introduced the concept of "API forms" in https://github.com/inventree/InvenTree/pull/1716 - - API OPTIONS endpoints provide comprehensive field metedata - - Multiple new API endpoints added for database models - -v6 -> 2021-06-23 - - Part and Company images can now be directly uploaded via the REST API - -v5 -> 2021-06-21 - - Adds API interface for manufacturer part parameters - -v4 -> 2021-06-01 - - BOM items can now accept "variant stock" to be assigned against them - - Many slight API tweaks were needed to get this to work properly! - -v3 -> 2021-05-22: - - The updated StockItem "history tracking" now uses a different interface - -""" - def inventreeInstanceName(): """ Returns the InstanceName settings for the current database """ @@ -196,7 +74,7 @@ def isInvenTreeUpToDate(): and stores it to the database as INVENTREE_LATEST_VERSION """ - latest = common.models.InvenTreeSetting.get_setting('INVENTREE_LATEST_VERSION', None) + latest = common.models.InvenTreeSetting.get_setting('INVENTREE_LATEST_VERSION', backup_value=None, create=False) # No record for "latest" version - we must assume we are up to date! if not latest: diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index feb586c844..183e491580 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -34,8 +34,7 @@ from user_sessions.views import SessionDeleteView, SessionDeleteOtherView from common.settings import currency_code_default, currency_codes -from part.models import Part, PartCategory -from stock.models import StockLocation, StockItem +from part.models import PartCategory from common.models import InvenTreeSetting, ColorTheme from users.models import check_user_role, RuleSet @@ -882,29 +881,6 @@ class DatabaseStatsView(AjaxView): ajax_template_name = "stats.html" ajax_form_title = _("System Information") - def get_context_data(self, **kwargs): - - ctx = {} - - # Part stats - ctx['part_count'] = Part.objects.count() - ctx['part_cat_count'] = PartCategory.objects.count() - - # Stock stats - ctx['stock_item_count'] = StockItem.objects.count() - ctx['stock_loc_count'] = StockLocation.objects.count() - - """ - TODO: Other ideas for database metrics - - - "Popular" parts (used to make other parts?) - - Most ordered part - - Most sold part - - etc etc etc - """ - - return ctx - class NotificationsView(TemplateView): """ View for showing notifications diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 9ba348b0b4..e5189e6073 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -871,6 +871,9 @@ class Build(MPTTModel, ReferenceIndexingMixin): part__in=[p for p in available_parts], ) + # Filter out "serialized" stock items, these cannot be auto-allocated + available_stock = available_stock.filter(Q(serial=None) | Q(serial='')) + if location: # Filter only stock items located "below" the specified location sublocations = location.get_descendants(include_self=True) diff --git a/InvenTree/build/templates/build/delete_build.html b/InvenTree/build/templates/build/delete_build.html index 7c3298ba35..65e53b2f80 100644 --- a/InvenTree/build/templates/build/delete_build.html +++ b/InvenTree/build/templates/build/delete_build.html @@ -1,5 +1,7 @@ {% extends "modal_delete_form.html" %} - +{% load i18n %} {% block pre_form_content %} -Are you sure you want to delete this build? + +{% trans "Are you sure you want to delete this build?" %} + {% endblock %} \ No newline at end of file diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html index 0ed3c01f7e..92e1177e0f 100644 --- a/InvenTree/build/templates/build/detail.html +++ b/InvenTree/build/templates/build/detail.html @@ -3,7 +3,6 @@ {% load i18n %} {% load inventree_extras %} {% load status_codes %} -{% load markdownify %} {% block sidebar %} {% include "build/sidebar.html" %} @@ -309,24 +308,16 @@
          -
          -
          -

          {% trans "Build Notes" %}

          -
          -
          -
          - -
          +
          +

          {% trans "Build Notes" %}

          + {% include "spacer.html" %} +
          + {% include "notes_buttons.html" %}
          - {% if build.notes %} - {{ build.notes | markdownify }} - {% endif %} +
          @@ -392,17 +383,18 @@ onPanelLoad('attachments', function() { }); onPanelLoad('notes', function() { - $('#edit-notes').click(function() { - constructForm('{% url "api-build-detail" build.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); - }); + + setupNotesField( + 'build-notes', + '{% url "api-build-detail" build.pk %}', + { + {% if roles.build.change %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); function reloadTable() { diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index ad144cd8db..f1cd8bc09a 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -684,7 +684,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): }, 'INVENTREE_INSTANCE': { - 'name': _('InvenTree Instance Name'), + 'name': _('Server Instance Name'), 'default': 'InvenTree server', 'description': _('String descriptor for the server instance'), }, @@ -696,6 +696,13 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': False, }, + 'INVENTREE_RESTRICT_ABOUT': { + 'name': _('Restrict showing `about`'), + 'description': _('Show the `about` modal only to superusers'), + 'validator': bool, + 'default': False, + }, + 'INVENTREE_COMPANY_NAME': { 'name': _('Company name'), 'description': _('Internal company name'), @@ -932,6 +939,12 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'validator': bool, }, + 'STOCK_BATCH_CODE_TEMPLATE': { + 'name': _('Batch Code Template'), + 'description': _('Template for generating default batch codes for stock items'), + 'default': '', + }, + 'STOCK_ENABLE_EXPIRY': { 'name': _('Stock Expiry'), 'description': _('Enable stock expiry functionality'), @@ -1247,6 +1260,13 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'validator': bool, }, + 'LABEL_ENABLE': { + 'name': _('Enable label printing'), + 'description': _('Enable label printing from the web interface'), + 'default': True, + 'validator': bool, + }, + "LABEL_INLINE": { 'name': _('Inline label display'), 'description': _('Display PDF labels in the browser, instead of downloading as a file'), @@ -1261,20 +1281,62 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'validator': bool, }, - 'SEARCH_PREVIEW_RESULTS': { - 'name': _('Search Preview Results'), - 'description': _('Number of results to show in search preview window'), - 'default': 10, - 'validator': [int, MinValueValidator(1)] - }, - - 'SEARCH_SHOW_STOCK_LEVELS': { - 'name': _('Search Show Stock'), - 'description': _('Display stock levels in search preview window'), + 'SEARCH_PREVIEW_SHOW_PARTS': { + 'name': _('Search Parts'), + 'description': _('Display parts in search preview window'), 'default': True, 'validator': bool, }, + 'SEARCH_PREVIEW_SHOW_CATEGORIES': { + 'name': _('Search Categories'), + 'description': _('Display part categories in search preview window'), + 'default': False, + 'validator': bool, + }, + + 'SEARCH_PREVIEW_SHOW_STOCK': { + 'name': _('Search Stock'), + 'description': _('Display stock items in search preview window'), + 'default': True, + 'validator': bool, + }, + + 'SEARCH_PREVIEW_SHOW_LOCATIONS': { + 'name': _('Search Locations'), + 'description': _('Display stock locations in search preview window'), + 'default': False, + 'validator': bool, + }, + + 'SEARCH_PREVIEW_SHOW_COMPANIES': { + 'name': _('Search Companies'), + 'description': _('Display companies in search preview window'), + 'default': True, + 'validator': bool, + }, + + 'SEARCH_PREVIEW_SHOW_PURCHASE_ORDERS': { + 'name': _('Search Purchase Orders'), + 'description': _('Display purchase orders in search preview window'), + 'default': True, + 'validator': bool, + }, + + 'SEARCH_PREVIEW_SHOW_SALES_ORDERS': { + 'name': _('Search Sales Orders'), + 'description': _('Display sales orders in search preview window'), + 'default': True, + 'validator': bool, + }, + + 'SEARCH_PREVIEW_RESULTS': { + 'name': _('Search Preview Results'), + 'description': _('Number of results to show in each section of the search preview window'), + 'default': 10, + 'validator': [int, MinValueValidator(1)] + }, + 'SEARCH_HIDE_INACTIVE_PARTS': { 'name': _("Hide Inactive Parts"), 'description': _('Hide inactive parts in search preview window'), @@ -1298,7 +1360,7 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): 'STICKY_HEADER': { 'name': _('Fixed Navbar'), - 'description': _('InvenTree navbar position is fixed to the top of the screen'), + 'description': _('The navbar position is fixed to the top of the screen'), 'default': False, 'validator': bool, }, diff --git a/InvenTree/common/tests.py b/InvenTree/common/tests.py index 77a4f1a12d..c3ce4f9e51 100644 --- a/InvenTree/common/tests.py +++ b/InvenTree/common/tests.py @@ -63,8 +63,8 @@ class SettingsTest(TestCase): report_test_obj = InvenTreeSetting.get_setting_object('REPORT_ENABLE_TEST_REPORT') # check settings base fields - self.assertEqual(instance_obj.name, 'InvenTree Instance Name') - self.assertEqual(instance_obj.get_setting_name(instance_ref), 'InvenTree Instance Name') + self.assertEqual(instance_obj.name, 'Server Instance Name') + self.assertEqual(instance_obj.get_setting_name(instance_ref), 'Server Instance Name') self.assertEqual(instance_obj.description, 'String descriptor for the server instance') self.assertEqual(instance_obj.get_setting_description(instance_ref), 'String descriptor for the server instance') diff --git a/InvenTree/company/templates/company/detail.html b/InvenTree/company/templates/company/detail.html index 0717d02d4d..3d715e288c 100644 --- a/InvenTree/company/templates/company/detail.html +++ b/InvenTree/company/templates/company/detail.html @@ -1,7 +1,6 @@ {% extends "company/company_base.html" %} {% load static %} {% load i18n %} -{% load markdownify %} {% block sidebar %} {% include 'company/sidebar.html' %} @@ -181,24 +180,16 @@
          -
          -
          -

          {% trans "Company Notes" %}

          -
          -
          -
          - -
          +
          +

          {% trans "Company Notes" %}

          + {% include "spacer.html" %} +
          + {% include "notes_buttons.html" %}
          - {% if company.notes %} - {{ company.notes | markdownify }} - {% endif %} +
          @@ -207,16 +198,15 @@ {% block js_ready %} {{ block.super }} - $('#edit-notes').click(function() { - constructForm('{% url "api-company-detail" company.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + onPanelLoad('company-notes', function() { + + setupNotesField( + 'company-notes', + '{% url "api-company-detail" company.pk %}', + { + editable: true, + } + ) }); loadStockTable($("#assigned-stock-table"), { @@ -230,18 +220,37 @@ filterTarget: '#filter-list-customerstock', }); - {% if company.is_customer %} - loadSalesOrderTable("#sales-order-table", { - url: "{% url 'api-so-list' %}", - params: { - customer: {{ company.id }}, - } + onPanelLoad('company-stock', function() { + + loadStockTable($('#stock-table'), { + url: "{% url 'api-stock-list' %}", + params: { + company: {{ company.id }}, + part_detail: true, + supplier_part_detail: true, + location_detail: true, + }, + buttons: [ + '#stock-options', + ], + filterKey: "companystock", + }); }); - $("#new-sales-order").click(function() { + {% if company.is_customer %} + onPanelLoad('sales-orders', function() { + loadSalesOrderTable("#sales-order-table", { + url: "{% url 'api-so-list' %}", + params: { + customer: {{ company.id }}, + } + }); - createSalesOrder({ - customer: {{ company.pk }}, + $("#new-sales-order").click(function() { + + createSalesOrder({ + customer: {{ company.pk }}, + }); }); }); {% endif %} @@ -270,20 +279,6 @@ {% endif %} - loadStockTable($('#stock-table'), { - url: "{% url 'api-stock-list' %}", - params: { - company: {{ company.id }}, - part_detail: true, - supplier_part_detail: true, - location_detail: true, - }, - buttons: [ - '#stock-options', - ], - filterKey: "companystock", - }); - {% if company.is_manufacturer %} function reloadManufacturerPartTable() { diff --git a/InvenTree/company/templates/company/manufacturer_part.html b/InvenTree/company/templates/company/manufacturer_part.html index 84e8016a59..fb33128a77 100644 --- a/InvenTree/company/templates/company/manufacturer_part.html +++ b/InvenTree/company/templates/company/manufacturer_part.html @@ -1,9 +1,10 @@ {% extends "page_base.html" %} {% load static %} {% load i18n %} +{% load inventree_extras %} {% block page_title %} -InvenTree | {% trans "Manufacturer Part" %} +{% inventree_title %} | {% trans "Manufacturer Part" %} {% endblock %} {% block sidebar %} diff --git a/InvenTree/config_template.yaml b/InvenTree/config_template.yaml index 65dd20d3e8..cad7012ebe 100644 --- a/InvenTree/config_template.yaml +++ b/InvenTree/config_template.yaml @@ -154,6 +154,14 @@ static_root: '/home/inventree/data/static' # Use environment variable INVENTREE_LOGIN_ATTEMPTS #login_attempts: 5 +# Remote / proxy login +# These settings can introduce security problems if configured incorrectly. Please read +# https://docs.djangoproject.com/en/4.0/howto/auth-remote-user/ for more details +# Use environment variable INVENTREE_REMOTE_LOGIN +# remote_login: True +# Use environment variable INVENTREE_REMOTE_LOGIN_HEADER +# remote_login_header: REMOTE_USER + # Add new user on first startup #admin_user: admin #admin_email: info@example.com @@ -186,3 +194,12 @@ static_root: '/home/inventree/data/static' # KEYCLOAK_URL: 'https://keycloak.custom/auth' # KEYCLOAK_REALM: 'master' +# Customization options +# Add custom messages to the login page or main interface navbar or exchange the logo +# Use environment variable INVENTREE_CUSTOMIZE or INVENTREE_CUSTOM_LOGO +# customize: +# login_message: InvenTree demo instance - Click here for login details +# navbar_message:
          InvenTree demo mode
          +# logo: logo.png +# hide_admin_link: true +# hide_password_reset: true diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.mo b/InvenTree/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..067827f3ed Binary files /dev/null and b/InvenTree/locale/cs/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po new file mode 100644 index 0000000000..07325d35de --- /dev/null +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -0,0 +1,10129 @@ +#: templates/js/translated/order.js:2170 +msgid "" +msgstr "" +"Project-Id-Version: inventree\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" +"Last-Translator: \n" +"Language-Team: Czech\n" +"Language: cs_CZ\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: cs\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" + +#: InvenTree/api.py:57 +msgid "API endpoint not found" +msgstr "API endpoint nebyl nalezen" + +#: InvenTree/api.py:103 +msgid "No action specified" +msgstr "Činnost nebyla specifikována" + +#: InvenTree/api.py:118 +msgid "No matching action found" +msgstr "Nebyla nalezena odpovídající činnost" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "Zadejte datum" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:601 +msgid "Confirm" +msgstr "Potvrdit" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "Potvrdit odstranění" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "Potvrdit odstranění položky" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "Zadejte heslo" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "Zadejte nové heslo" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "Potvrďte heslo" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "Potvrďte nové heslo" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "Vyberte kategorii" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "Email (znovu)" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "Potvrzení emailové adresy" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "Pokaždé musíte zadat stejný email." + +#: InvenTree/helpers.py:442 +#, python-brace-format +msgid "Duplicate serial: {sn}" +msgstr "Duplicitní výrobní číslo: {sn}" + +#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 +#: stock/views.py:993 +msgid "Invalid quantity provided" +msgstr "Vyplněno neplatné množství" + +#: InvenTree/helpers.py:452 +msgid "Empty serial number string" +msgstr "Nevyplněné výrobní číslo" + +#: InvenTree/helpers.py:474 InvenTree/helpers.py:477 InvenTree/helpers.py:480 +#: InvenTree/helpers.py:504 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "Neplatná skupina: {g}" + +#: InvenTree/helpers.py:518 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "Neplatná/nevyplněná skupina {group}" + +#: InvenTree/helpers.py:524 +msgid "No serial numbers found" +msgstr "Nenalezena žádná výrobní čísla" + +#: InvenTree/helpers.py:528 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "Počet unikátních výrobních čísel ({s}) musí odpovídat množství ({q})" + +#: InvenTree/models.py:185 +msgid "Missing file" +msgstr "Chybějící soubor" + +#: InvenTree/models.py:186 +msgid "Missing external link" +msgstr "Chybějící externí odkaz" + +#: InvenTree/models.py:197 stock/models.py:2202 +#: templates/js/translated/attachment.js:119 +msgid "Attachment" +msgstr "Příloha" + +#: InvenTree/models.py:198 +msgid "Select file to attach" +msgstr "Vyberte soubor k přiložení" + +#: InvenTree/models.py:204 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:873 +#: report/templates/report/inventree_build_order_base.html:165 +#: templates/js/translated/company.js:540 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 +msgid "Link" +msgstr "Odkaz" + +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 +msgid "Link to external URL" +msgstr "Odkaz na externí URL" + +#: InvenTree/models.py:208 templates/js/translated/attachment.js:163 +msgid "Comment" +msgstr "Komentář" + +#: InvenTree/models.py:208 +msgid "File comment" +msgstr "Komentář k souboru" + +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2517 +msgid "User" +msgstr "Uživatel" + +#: InvenTree/models.py:218 +msgid "upload date" +msgstr "datum přidání" + +#: InvenTree/models.py:241 +msgid "Filename must not be empty" +msgstr "Název souboru nesmí být prázdný" + +#: InvenTree/models.py:264 +msgid "Invalid attachment directory" +msgstr "Neplatný adresář přílohy" + +#: InvenTree/models.py:274 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "Název souboru obsahuje nepovolený znak '{c}'" + +#: InvenTree/models.py:277 +msgid "Filename missing extension" +msgstr "Chybějící přípona souboru" + +#: InvenTree/models.py:284 +msgid "Attachment with this filename already exists" +msgstr "Příloha s tímto názvem již existuje" + +#: InvenTree/models.py:291 +msgid "Error renaming file" +msgstr "Chyba při přejmenování souboru" + +#: InvenTree/models.py:326 +msgid "Invalid choice" +msgstr "Neplatný výběr" + +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 +msgid "Name" +msgstr "Název" + +#: InvenTree/models.py:349 build/models.py:209 +#: build/templates/build/detail.html:24 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:77 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 +#: part/templates/part/set_category.html:14 report/models.py:194 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:94 +#: templates/InvenTree/settings/plugin_settings.html:33 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 +#: templates/js/translated/company.js:551 +#: templates/js/translated/company.js:840 templates/js/translated/order.js:971 +#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 +msgid "Description" +msgstr "Popis" + +#: InvenTree/models.py:350 +msgid "Description (optional)" +msgstr "Popis (volitelně)" + +#: InvenTree/models.py:358 +msgid "parent" +msgstr "nadřazený" + +#: InvenTree/serializers.py:65 part/models.py:2891 +msgid "Must be a valid number" +msgstr "Musí být platné číslo" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "Název souboru" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "Neplatná hodnota" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "Datový soubor" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "Vyberte datový soubor k nahrání" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "Nepodporovaný typ souboru" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "Soubor je příliš velký" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "V souboru nebyly nalezeny žádné sloupce" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "V souboru nebyly nalezeny žádné řádky s daty" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "Nebyly zadány žádné řádky s daty" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "Nebyly zadány žádné sloupce s daty" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "Chybí povinný sloupec: '{name}'" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "Duplicitní sloupec: '{col}'" + +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "Čeština" + +#: InvenTree/settings.py:676 +msgid "German" +msgstr "Němčina" + +#: InvenTree/settings.py:677 +msgid "Greek" +msgstr "Řečtina" + +#: InvenTree/settings.py:678 +msgid "English" +msgstr "Angličtina" + +#: InvenTree/settings.py:679 +msgid "Spanish" +msgstr "Španělština" + +#: InvenTree/settings.py:680 +msgid "Spanish (Mexican)" +msgstr "Španělština (Mexiko)" + +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "Farsi / Perština" + +#: InvenTree/settings.py:682 +msgid "French" +msgstr "Francouzština" + +#: InvenTree/settings.py:683 +msgid "Hebrew" +msgstr "Hebrejština" + +#: InvenTree/settings.py:684 +msgid "Hungarian" +msgstr "Maďarština" + +#: InvenTree/settings.py:685 +msgid "Italian" +msgstr "Italština" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "Japonština" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "Korejština" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "Nizozemština" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "Norština" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "Polština" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "Ruština" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "Švédština" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "Thajština" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "Turečtina" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "Vietnamština" + +#: InvenTree/settings.py:698 +msgid "Chinese" +msgstr "Čínština" + +#: InvenTree/status.py:110 +msgid "Background worker check failed" +msgstr "Kontrola procesů na pozadí se nezdařila" + +#: InvenTree/status.py:114 +msgid "Email backend not configured" +msgstr "Email backend není nakonfigurován" + +#: InvenTree/status.py:117 +msgid "InvenTree system health checks failed" +msgstr "Kontroly zdraví systému InvenTree selhaly" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 +msgid "Pending" +msgstr "Nevyřízeno" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "Umístěno" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "Hotovo" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:325 +msgid "Cancelled" +msgstr "Zrušeno" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "Ztraceno" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "Vráceno" + +#: InvenTree/status_codes.py:143 order/models.py:997 +#: templates/js/translated/order.js:2177 templates/js/translated/order.js:2474 +msgid "Shipped" +msgstr "Odesláno" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "OK" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "Vyžaduje pozornost" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "Poškozeno" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "Zničeno" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "Odmítnuto" + +#: InvenTree/status_codes.py:276 +msgid "Legacy stock tracking entry" +msgstr "Původní položka sledování zásob" + +#: InvenTree/status_codes.py:278 +msgid "Stock item created" +msgstr "Položka zásob vytvořena" + +#: InvenTree/status_codes.py:280 +msgid "Edited stock item" +msgstr "Položka zásob upravena" + +#: InvenTree/status_codes.py:281 +msgid "Assigned serial number" +msgstr "Přiřazeno výrobní číslo" + +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "Stav zásob sečten" + +#: InvenTree/status_codes.py:284 +msgid "Stock manually added" +msgstr "Zásoba přidána ručně" + +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "Zásoba odebrána ručně" + +#: InvenTree/status_codes.py:287 +msgid "Location changed" +msgstr "Umístění změněno" + +#: InvenTree/status_codes.py:289 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:290 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:296 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:305 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:306 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "Zaškrtněte políčko pro potvrzení odstranění položky" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "Upravit informace o uživateli" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "Nastavit heslo" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "Hesla se musí shodovat" + +#: InvenTree/views.py:883 templates/navbar.html:151 +msgid "System Information" +msgstr "Informace o systému" + +#: barcodes/api.py:55 barcodes/api.py:156 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:132 +msgid "No match found for barcode data" +msgstr "Pro data čárového kódu nebyla nalezena shoda" + +#: barcodes/api.py:134 +msgid "Match found for barcode data" +msgstr "Pro data čárového kódu byla nalezena shoda" + +#: barcodes/api.py:159 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:166 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:205 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:211 barcodes/api.py:223 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:229 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/translated/build.js:677 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:91 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:563 +#: order/models.py:843 part/models.py:2802 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 +#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:29 company/models.py:706 +#: order/models.py:912 order/models.py:986 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 +#: templates/js/translated/company.js:749 templates/js/translated/order.js:84 +#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 +#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 build/serializers.py:730 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 order/serializers.py:272 +#: stock/models.py:673 templates/js/translated/order.js:573 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:585 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +#: templates/js/translated/build.js:2138 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 templates/js/translated/build.js:2106 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:115 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 +#: report/templates/report/inventree_build_order_base.html:159 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:381 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:845 order/models.py:1107 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 +#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 +#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:750 +msgid "No build output specified" +msgstr "" + +#: build/models.py:753 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:756 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1171 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1180 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1190 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1196 order/models.py:1225 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1202 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1259 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 +msgid "Build" +msgstr "" + +#: build/models.py:1329 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 +#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:351 +#: templates/js/translated/build.js:688 templates/js/translated/build.js:693 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 +#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 +#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 +#: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1346 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1358 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:34 common/models.py:1442 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:836 order/models.py:1265 order/serializers.py:903 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 +#: templates/js/translated/build.js:376 templates/js/translated/build.js:524 +#: templates/js/translated/build.js:715 templates/js/translated/build.js:912 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 +#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 +#: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 +msgid "Quantity" +msgstr "" + +#: build/models.py:1359 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1367 +msgid "Install into" +msgstr "" + +#: build/models.py:1368 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:605 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:596 order/models.py:280 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 +#: stock/forms.py:78 stock/serializers.py:314 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:240 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:241 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:275 stock/api.py:591 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:328 build/serializers.py:393 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 +#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 +#: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 +msgid "Location" +msgstr "" + +#: build/serializers.py:371 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:377 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 +#: templates/js/translated/order.js:716 templates/js/translated/order.js:975 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 +msgid "Status" +msgstr "" + +#: build/serializers.py:434 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:435 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:445 templates/js/translated/build.js:151 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:450 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:451 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:461 templates/js/translated/build.js:155 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:470 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:473 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:511 +msgid "Build output" +msgstr "" + +#: build/serializers.py:520 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:567 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:582 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:638 order/serializers.py:834 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:644 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:651 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:679 order/serializers.py:1077 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:731 +msgid "Stock location where parts are to be sourced (leave blank to take from any location)" +msgstr "" + +#: build/serializers.py:739 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:740 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:745 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:746 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:751 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:752 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:131 order/models.py:849 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 +#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 +#: order/templates/order/sales_order_base.html:170 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:94 order/models.py:983 +#: order/models.py:1079 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:291 +#: templates/js/translated/order.js:1414 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:108 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 +#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 +#: templates/js/translated/table_filters.js:151 +#: templates/js/translated/table_filters.js:242 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:126 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +#: templates/js/translated/build.js:2098 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:137 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:146 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:172 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:179 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:186 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 +#: part/templates/part/category.html:174 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:199 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:203 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:210 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:229 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:233 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:234 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:248 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:252 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:255 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:256 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:312 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:548 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:549 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Outputs" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:381 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:383 +msgid "Settings value" +msgstr "" + +#: common/models.py:417 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:437 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:448 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:490 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:637 +msgid "No group" +msgstr "" + +#: common/models.py:679 +msgid "Restart required" +msgstr "" + +#: common/models.py:680 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" + +#: common/models.py:689 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:693 +msgid "Use instance name" +msgstr "" + +#: common/models.py:694 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:761 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:767 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:768 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:774 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:775 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:781 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:782 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:788 part/models.py:2598 report/models.py:187 +#: templates/js/translated/table_filters.js:38 +#: templates/js/translated/table_filters.js:444 +msgid "Template" +msgstr "" + +#: common/models.py:789 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 +#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:460 +msgid "Assembly" +msgstr "" + +#: common/models.py:796 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 +msgid "Component" +msgstr "" + +#: common/models.py:803 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:809 part/models.py:981 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:810 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 +msgid "Salable" +msgstr "" + +#: common/models.py:817 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:823 part/models.py:976 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:100 +#: templates/js/translated/table_filters.js:476 +msgid "Trackable" +msgstr "" + +#: common/models.py:824 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 +#: templates/js/translated/table_filters.js:42 +msgid "Virtual" +msgstr "" + +#: common/models.py:831 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:837 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:838 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:844 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:845 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:856 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:857 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:868 +msgid "Show Price History" +msgstr "" + +#: common/models.py:869 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:875 +msgid "Show related parts" +msgstr "" + +#: common/models.py:876 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:882 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:883 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:889 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:890 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:896 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:897 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:903 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:904 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:911 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:912 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:918 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:919 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:925 +msgid "Page Size" +msgstr "" + +#: common/models.py:926 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:936 +msgid "Test Reports" +msgstr "" + +#: common/models.py:937 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:943 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:949 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:950 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:956 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:957 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:963 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:964 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:966 +msgid "days" +msgstr "" + +#: common/models.py:971 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:972 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:978 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:985 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:986 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:991 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:996 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:997 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:1009 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1015 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1021 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1022 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" +msgstr "" + +#: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:1094 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1100 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1101 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1116 common/models.py:1402 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1147 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1148 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1153 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1154 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1159 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1160 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1165 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1166 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1172 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1173 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1178 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1179 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1184 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1185 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1190 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1191 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1196 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1197 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1202 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1203 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1208 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1209 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1214 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1215 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1220 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1221 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1226 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1227 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1232 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1233 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1238 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1239 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1244 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1245 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1250 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1251 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1257 +msgid "Enable email notifications" +msgstr "" + +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:1443 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1450 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 +msgid "Price" +msgstr "" + +#: common/models.py:1451 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1608 common/models.py:1747 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1609 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1618 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 +#: templates/js/translated/table_filters.js:34 +#: templates/js/translated/table_filters.js:96 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 +msgid "Active" +msgstr "" + +#: common/models.py:1624 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1638 +msgid "Token" +msgstr "" + +#: common/models.py:1639 +msgid "Token for access" +msgstr "" + +#: common/models.py:1646 +msgid "Secret" +msgstr "" + +#: common/models.py:1647 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1714 +msgid "Message ID" +msgstr "" + +#: common/models.py:1715 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1723 +msgid "Host" +msgstr "" + +#: common/models.py:1724 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1731 +msgid "Header" +msgstr "" + +#: common/models.py:1732 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1738 +msgid "Body" +msgstr "" + +#: common/models.py:1739 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1748 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1753 +msgid "Worked on" +msgstr "" + +#: common/models.py:1754 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 +#: templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: order/templates/order/order_wizard/po_upload.html:47 +#: part/templates/part/import_wizard/match_fields.html:27 +#: part/templates/part/import_wizard/match_references.html:19 +#: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +#: templates/js/translated/company.js:349 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:883 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:92 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:364 +#: templates/js/translated/company.js:333 +#: templates/js/translated/company.js:517 +#: templates/js/translated/company.js:800 templates/js/translated/part.js:235 +#: templates/js/translated/table_filters.js:411 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 templates/js/translated/part.js:236 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 +#: company/templates/company/supplier_part.html:105 +#: templates/js/translated/company.js:533 +#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 +msgid "MPN" +msgstr "" + +#: company/models.py:343 templates/js/translated/part.js:247 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 +#: templates/js/translated/company.js:337 +#: templates/js/translated/company.js:774 templates/js/translated/order.js:958 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 templates/js/translated/part.js:217 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 +msgid "SKU" +msgstr "" + +#: company/models.py:552 templates/js/translated/part.js:228 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1878 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/models.py:708 +msgid "last updated" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +#: templates/js/translated/order.js:279 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +#: templates/js/translated/company.js:265 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:574 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 +#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:465 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:14 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:18 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 +#: part/templates/part/category.html:174 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:106 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:116 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:120 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:36 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:41 +#: templates/js/translated/company.js:565 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:45 +#: templates/js/translated/company.js:566 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:67 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:115 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:144 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:159 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:240 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:252 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +#: templates/js/translated/company.js:863 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +#: templates/js/translated/company.js:864 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:81 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:10 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:298 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part.html:273 +msgid "Last updated" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:31 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:59 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 templates/js/translated/search.js:159 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:591 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:623 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:630 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:639 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:97 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:298 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:291 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:322 report/models.py:459 report/models.py:497 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:564 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:579 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +#: templates/js/translated/order.js:967 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:430 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:575 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:581 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:581 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:586 +msgid "Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:589 order/models.py:1084 +#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:596 +msgid "shipped by" +msgstr "" + +#: order/models.py:662 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:666 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:669 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:672 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:837 +msgid "Item quantity" +msgstr "" + +#: order/models.py:843 +msgid "Line item reference" +msgstr "" + +#: order/models.py:845 +msgid "Line item notes" +msgstr "" + +#: order/models.py:850 +msgid "Target shipping date for this line item" +msgstr "" + +#: order/models.py:878 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:891 order/models.py:982 order/models.py:1078 +#: templates/js/translated/order.js:2025 +msgid "Order" +msgstr "" + +#: order/models.py:892 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:77 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:913 +msgid "Supplier part" +msgstr "" + +#: order/models.py:920 order/templates/order/order_base.html:163 +#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 +msgid "Received" +msgstr "" + +#: order/models.py:921 +msgid "Number of items received" +msgstr "" + +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:929 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:937 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:992 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 +msgid "Sale Price" +msgstr "" + +#: order/models.py:993 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:998 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1085 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1092 +msgid "Checked By" +msgstr "" + +#: order/models.py:1093 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1101 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1108 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1115 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1116 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1126 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1129 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1207 order/models.py:1209 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1213 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1215 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1218 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1222 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1228 order/serializers.py:827 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1231 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1232 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1240 +msgid "Line" +msgstr "" + +#: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 +#: templates/js/translated/model_renderers.js:304 +msgid "Shipment" +msgstr "" + +#: order/models.py:1249 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 +msgid "Item" +msgstr "" + +#: order/models.py:1262 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1265 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:187 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:238 order/serializers.py:883 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:244 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:254 order/serializers.py:359 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:273 templates/js/translated/order.js:574 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:281 templates/js/translated/order.js:585 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:294 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:295 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:312 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:331 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:371 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:388 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:399 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:672 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:742 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:792 order/serializers.py:895 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:814 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:908 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:932 order/serializers.py:1057 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:935 order/serializers.py:1060 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:987 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:997 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "Cancelling this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 +#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:25 +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:55 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491 +#: templates/js/translated/order.js:1621 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:17 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:29 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:49 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +#: templates/js/translated/order.js:1449 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:77 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:17 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:43 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:56 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:509 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:529 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:547 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:579 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:659 +msgid "Valid" +msgstr "" + +#: part/api.py:660 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:665 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:1045 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:1049 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:1064 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:189 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:113 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:127 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:368 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:460 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:540 part/models.py:552 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:682 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:686 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:691 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:787 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:816 part/models.py:2695 +msgid "Part name" +msgstr "" + +#: part/models.py:823 +msgid "Is Template" +msgstr "" + +#: part/models.py:824 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:834 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:835 +msgid "Variant Of" +msgstr "" + +#: part/models.py:841 +msgid "Part description" +msgstr "" + +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 +msgid "Keywords" +msgstr "" + +#: part/models.py:847 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 +msgid "Category" +msgstr "" + +#: part/models.py:855 +msgid "Part category" +msgstr "" + +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 +msgid "IPN" +msgstr "" + +#: part/models.py:861 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:867 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 +msgid "Revision" +msgstr "" + +#: part/models.py:890 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:937 part/templates/part/part_base.html:339 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:938 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:945 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:946 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:951 part/templates/part/part_base.html:200 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:952 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:959 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:965 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:971 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:977 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:982 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:987 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:992 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:997 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:1002 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:1005 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1005 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1008 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1010 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1014 +msgid "Creation User" +msgstr "" + +#: part/models.py:1878 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2442 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2459 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 +msgid "Test Name" +msgstr "" + +#: part/models.py:2480 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2485 +msgid "Test Description" +msgstr "" + +#: part/models.py:2486 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 +msgid "Required" +msgstr "" + +#: part/models.py:2492 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2497 templates/js/translated/part.js:1843 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2498 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2503 templates/js/translated/part.js:1850 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2504 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2515 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2551 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2559 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2566 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2596 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2600 +msgid "Data" +msgstr "" + +#: part/models.py:2600 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 +msgid "Default Value" +msgstr "" + +#: part/models.py:2653 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2687 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 +msgid "Part ID" +msgstr "" + +#: part/models.py:2691 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2694 +msgid "Part Name" +msgstr "" + +#: part/models.py:2698 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2699 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2702 +msgid "Level" +msgstr "" + +#: part/models.py:2703 +msgid "BOM level" +msgstr "" + +#: part/models.py:2778 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2786 +msgid "Sub part" +msgstr "" + +#: part/models.py:2787 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2793 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 +#: templates/js/translated/table_filters.js:92 +msgid "Optional" +msgstr "" + +#: part/models.py:2795 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2798 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2799 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2802 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2805 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2807 +msgid "Checksum" +msgstr "" + +#: part/models.py:2807 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 +#: templates/js/translated/table_filters.js:68 +#: templates/js/translated/table_filters.js:88 +msgid "Inherited" +msgstr "" + +#: part/models.py:2812 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2818 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2903 stock/models.py:497 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2912 part/models.py:2914 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:3026 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:3048 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:3060 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:3068 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3079 +msgid "Part 1" +msgstr "" + +#: part/models.py:3083 +msgid "Part 2" +msgstr "" + +#: part/models.py:3083 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3115 +msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" +msgstr "" + +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:934 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:935 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:940 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:941 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:946 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:947 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:952 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:953 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:997 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:998 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:1025 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:1068 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:1071 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:1074 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:1083 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:1091 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:1110 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:18 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has changed, and must be validated.
          " +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:211 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:157 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:158 templates/js/translated/bom.js:365 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:176 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:201 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "" + +#: part/templates/part/category.html:333 +msgid "Part created successfully" +msgstr "" + +#: part/templates/part/category_delete.html:7 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: part/templates/part/category_delete.html:12 +#, python-format +msgid "This category contains %(n)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:14 +#, python-format +msgid "If this category is deleted, these child categories will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:16 +msgid "If this category is deleted, these child categories will be moved to the top level part category" +msgstr "" + +#: part/templates/part/category_delete.html:23 +#, python-format +msgid "This category contains %(n)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "If this category is deleted, these parts will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:27 +msgid "If this category is deleted, these parts will be moved to the top level part category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:52 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:57 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:155 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:156 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:183 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:250 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:256 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:266 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:268 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:273 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:274 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:287 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:305 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:348 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:376 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:392 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:595 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:596 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:645 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:689 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:697 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:794 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:927 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:939 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:951 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1040 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:53 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:34 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:36 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:55 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:67 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:73 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:88 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:91 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:143 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:765 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:177 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 +#: templates/js/translated/table_filters.js:193 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:215 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:287 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:316 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:486 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:567 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:137 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:11 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:27 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:46 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:50 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" +"
          Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:19 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:25 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:26 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:53 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:120 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:121 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:143 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:184 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:193 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:203 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:218 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:233 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:259 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:300 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:198 +msgid "Unknown database" +msgstr "" + +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:136 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:208 +msgid "Match References" +msgstr "" + +#: part/views.py:509 +msgid "None" +msgstr "" + +#: part/views.py:568 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:670 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:696 +msgid "Updated part image" +msgstr "" + +#: part/views.py:699 +msgid "Part image not found" +msgstr "" + +#: part/views.py:787 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:794 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:803 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:952 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:962 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:969 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1012 templates/js/translated/part.js:317 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1050 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1056 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1065 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1166 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1222 +msgid "Delete Category Parameter Template" +msgstr "" + +#: plugin/apps.py:52 +msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." +msgstr "" + +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:160 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:182 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:60 +msgid "This will install this plugin now into the current instance. The instance will go into maintenance." +msgstr "" + +#: plugin/serializers.py:75 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:77 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:234 report/api.py:278 +#, python-brace-format +msgid "Template file '{filename}' is missing or does not exist" +msgstr "" + +#: report/models.py:182 +msgid "Template name" +msgstr "" + +#: report/models.py:188 +msgid "Report template file" +msgstr "" + +#: report/models.py:195 +msgid "Report template description" +msgstr "" + +#: report/models.py:201 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:292 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:299 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:323 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:331 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:332 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:382 +msgid "Build Filters" +msgstr "" + +#: report/models.py:383 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:425 +msgid "Part Filters" +msgstr "" + +#: report/models.py:426 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:460 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:498 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 +#: templates/js/translated/build.js:374 templates/js/translated/build.js:522 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 +#: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:2183 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:2189 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 +msgid "Serial" +msgstr "" + +#: stock/api.py:543 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:550 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:575 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "Destination for serialized stock (by default, will remain in current location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 +msgid "Owner" +msgstr "" + +#: stock/models.py:94 stock/models.py:755 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:470 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:514 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:524 stock/models.py:533 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:525 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:547 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:553 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:560 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:603 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:612 +msgid "Base part" +msgstr "" + +#: stock/models.py:620 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:626 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:629 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:636 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:642 stock/templates/stock/item_base.html:282 +msgid "Installed In" +msgstr "" + +#: stock/models.py:645 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:661 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:675 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:680 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:689 +msgid "Source Build" +msgstr "" + +#: stock/models.py:691 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:702 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:705 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:711 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:718 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:731 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:731 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:741 stock/templates/stock/item.html:137 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:750 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1308 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1314 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1317 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1320 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1327 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1398 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1401 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1404 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1407 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1410 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1413 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1420 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1424 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1428 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1432 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1604 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2103 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2160 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2166 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2184 +msgid "Test name" +msgstr "" + +#: stock/models.py:2190 +msgid "Test result" +msgstr "" + +#: stock/models.py:2196 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2203 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2209 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1019 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:22 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:74 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:82 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:91 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:99 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:103 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:152 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +#: templates/js/translated/barcode.js:330 +#: templates/js/translated/barcode.js:335 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:54 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:70 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:83 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:118 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:211 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:215 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:224 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:225 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:238 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:246 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:254 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:260 +msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:350 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:393 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:486 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:40 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:68 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:81 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:82 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:107 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:113 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:117 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:8 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/location_delete.html:13 +#, python-format +msgid "This location contains %(n)s child locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:15 +#, python-format +msgid "If this location is deleted, these child locations will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:17 +msgid "If this location is deleted, these child locations will be moved to the top level stock location" +msgstr "" + +#: stock/templates/stock/location_delete.html:25 +#, python-format +msgid "This location contains %(n)s stock items" +msgstr "" + +#: stock/templates/stock/location_delete.html:27 +#, python-format +msgid "If this location is deleted, these stock items will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:29 +msgid "If this location is deleted, these stock items will be moved to the top level stock location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:152 templates/js/translated/stock.js:138 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:274 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:293 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:302 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:313 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:324 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:341 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:342 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:357 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:382 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:479 templates/js/translated/stock.js:1046 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:490 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:512 templates/js/translated/stock.js:343 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:672 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:773 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:915 templates/js/translated/stock.js:323 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:997 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1097 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1110 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1121 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1128 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1137 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:6 templates/403.html:12 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:15 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:6 templates/404.html:12 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:15 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:6 templates/500.html:12 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:31 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:34 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:39 +#: templates/js/translated/plugin.js:15 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:122 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:131 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local server path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:37 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:42 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:116 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:118 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:120 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:209 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:310 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:27 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:37 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:48 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:56 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:65 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:90 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:103 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:104 +#, python-format +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "Please confirm that %(email)s is an email address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:22 +#, python-format +msgid "Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:26 +#, python-format +msgid "If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:46 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:52 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:100 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:103 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:103 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +#: templates/js/translated/bom.js:1378 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 +#: templates/js/translated/table_filters.js:178 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:197 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:198 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:217 +msgid "Error 405: Method Not Allowed" +msgstr "" + +#: templates/js/translated/api.js:218 +msgid "HTTP method not allowed at URL" +msgstr "" + +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:226 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:227 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:78 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:100 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:110 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:111 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:167 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:183 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:190 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:29 +msgid "Scan barcode data here using wedge scanner" +msgstr "" + +#: templates/js/translated/barcode.js:31 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:35 +msgid "Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:53 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:54 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:92 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:113 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:140 +#: templates/js/translated/modals.js:1046 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:233 +msgid "Scan barcode data below" +msgstr "" + +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:291 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:309 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:332 +msgid "This will remove the association between this stock item and the barcode" +msgstr "" + +#: templates/js/translated/barcode.js:338 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:445 +msgid "Check Stock Items into Location" +msgstr "" + +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" + +#: templates/js/translated/barcode.js:515 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:519 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:526 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:533 +msgid "Barcode does not match Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:576 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:639 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:430 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:294 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:295 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:300 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:301 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:307 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:308 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:313 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:314 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:319 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:320 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:325 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:326 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:509 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:565 +msgid "Select and add a new substitute part using the input below" +msgstr "" + +#: templates/js/translated/bom.js:576 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:582 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:621 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:622 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:755 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:764 +msgid "Open subassembly" +msgstr "" + +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:871 +msgid "Purchase Price Range" +msgstr "" + +#: templates/js/translated/bom.js:878 +msgid "Purchase Price Average" +msgstr "" + +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:989 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:991 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:993 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:1159 +msgid "Are you sure you want to delete this BOM item?" +msgstr "" + +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/bom.js:1383 +msgid "Inherited from parent BOM" +msgstr "" + +#: templates/js/translated/build.js:86 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:120 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:141 +msgid "Build order is ready to be completed" +msgstr "" + +#: templates/js/translated/build.js:146 +msgid "Build Order is incomplete" +msgstr "" + +#: templates/js/translated/build.js:174 +msgid "Complete Build Order" +msgstr "" + +#: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 +#: templates/js/translated/stock.js:180 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:182 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:227 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:236 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:243 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:274 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:285 +msgid "Unallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:294 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:302 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:325 +msgid "Are you sure you wish to unallocate stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:343 +msgid "Unallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:362 templates/js/translated/build.js:510 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:416 templates/js/translated/build.js:564 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:432 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:577 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:666 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:704 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:886 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 +#: templates/js/translated/order.js:2179 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 +#: templates/js/translated/order.js:2180 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1385 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:1395 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:1420 +msgid "Substitute parts available" +msgstr "" + +#: templates/js/translated/build.js:1437 +msgid "Quantity Per" +msgstr "" + +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 +msgid "Allocated" +msgstr "" + +#: templates/js/translated/build.js:1508 +msgid "loading" +msgstr "" + +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1722 +msgid "All Parts Allocated" +msgstr "" + +#: templates/js/translated/build.js:1723 +msgid "All selected parts have been fully allocated" +msgstr "" + +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1767 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:1947 +msgid "Automatic Stock Allocation" +msgstr "" + +#: templates/js/translated/build.js:1948 +msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" +msgstr "" + +#: templates/js/translated/build.js:1950 +msgid "If a location is specifed, stock will only be allocated from that location" +msgstr "" + +#: templates/js/translated/build.js:1951 +msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" +msgstr "" + +#: templates/js/translated/build.js:1952 +msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" +msgstr "" + +#: templates/js/translated/build.js:1973 +msgid "Allocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:2011 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:2048 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:2124 +msgid "No information" +msgstr "" + +#: templates/js/translated/build.js:2181 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/translated/company.js:65 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:78 templates/js/translated/company.js:177 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:99 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:108 +msgid "Delete Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:165 templates/js/translated/order.js:248 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:193 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:208 +msgid "Edit Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:218 +msgid "Delete Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:286 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:363 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:372 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:387 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:406 +msgid "The following manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:423 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:480 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:504 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:737 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:441 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:442 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:204 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:288 +msgid "Download data" +msgstr "" + +#: templates/js/translated/filters.js:291 +msgid "Reload data" +msgstr "" + +#: templates/js/translated/filters.js:295 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:298 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:350 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:353 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:368 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:382 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:396 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:627 +msgid "Keep this form open" +msgstr "" + +#: templates/js/translated/forms.js:702 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1194 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:1623 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:1833 templates/search.html:29 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:2082 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/forms.js:2547 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2547 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2559 +msgid "Select Columns" +msgstr "" + +#: templates/js/translated/helpers.js:20 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:22 +msgid "NO" +msgstr "" + +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/label.js:61 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:80 +msgid "No labels found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/label.js:115 +msgid "Select Stock Locations" +msgstr "" + +#: templates/js/translated/label.js:116 +msgid "Stock location(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:134 +msgid "No labels found which match selected stock location(s)" +msgstr "" + +#: templates/js/translated/label.js:173 +msgid "Part(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:192 +msgid "No labels found which match the selected part(s)" +msgstr "" + +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 +msgid "stock items selected" +msgstr "" + +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 +msgid "Select Label Template" +msgstr "" + +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:118 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:392 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:551 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:609 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:666 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:949 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1046 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1061 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1062 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1085 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/model_renderers.js:60 +msgid "Company ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:123 +msgid "Stock ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:149 +msgid "Location ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:166 +msgid "Build ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 +msgid "Order ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:306 +msgid "Shipment ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:326 +msgid "Category ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:369 +msgid "Manufacturer Part ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:398 +msgid "Supplier Part ID" +msgstr "" + +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + +#: templates/js/translated/order.js:75 +msgid "No stock items have been allocated to this shipment" +msgstr "" + +#: templates/js/translated/order.js:80 +msgid "The following stock items will be shipped" +msgstr "" + +#: templates/js/translated/order.js:120 +msgid "Complete Shipment" +msgstr "" + +#: templates/js/translated/order.js:126 +msgid "Confirm Shipment" +msgstr "" + +#: templates/js/translated/order.js:181 +msgid "Create New Shipment" +msgstr "" + +#: templates/js/translated/order.js:206 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/order.js:231 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/order.js:426 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:520 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/order.js:521 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/order.js:541 templates/js/translated/order.js:640 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/order.js:547 templates/js/translated/order.js:651 +msgid "Add serial numbers" +msgstr "" + +#: templates/js/translated/order.js:559 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/order.js:712 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/order.js:713 +msgid "Ordered" +msgstr "" + +#: templates/js/translated/order.js:715 +msgid "Quantity to Receive" +msgstr "" + +#: templates/js/translated/order.js:734 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/order.js:735 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2577 +msgid "Duplicate Line Item" +msgstr "" + +#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2599 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2610 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/order.js:1160 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2335 +msgid "Total" +msgstr "" + +#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 +msgid "Unit Price" +msgstr "" + +#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2376 +msgid "Total Price" +msgstr "" + +#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 +#: templates/js/translated/part.js:974 +msgid "This line item is overdue" +msgstr "" + +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2532 +msgid "Duplicate line item" +msgstr "" + +#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2533 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2537 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:1402 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/order.js:1440 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/order.js:1527 +msgid "Edit shipment" +msgstr "" + +#: templates/js/translated/order.js:1530 +msgid "Complete shipment" +msgstr "" + +#: templates/js/translated/order.js:1535 +msgid "Delete shipment" +msgstr "" + +#: templates/js/translated/order.js:1555 +msgid "Edit Shipment" +msgstr "" + +#: templates/js/translated/order.js:1572 +msgid "Delete Shipment" +msgstr "" + +#: templates/js/translated/order.js:1606 +msgid "No matching shipments found" +msgstr "" + +#: templates/js/translated/order.js:1616 +msgid "Shipment Reference" +msgstr "" + +#: templates/js/translated/order.js:1640 +msgid "Not shipped" +msgstr "" + +#: templates/js/translated/order.js:1646 +msgid "Tracking" +msgstr "" + +#: templates/js/translated/order.js:1806 +msgid "Allocate Stock Items to Sales Order" +msgstr "" + +#: templates/js/translated/order.js:2014 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/order.js:2095 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:2112 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:2113 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 +#: templates/js/translated/stock.js:1544 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2254 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/order.js:2516 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/order.js:2522 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/order.js:2529 templates/js/translated/order.js:2719 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/order.js:2541 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/order.js:2544 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/order.js:2625 +msgid "Allocate Serial Numbers" +msgstr "" + +#: templates/js/translated/order.js:2727 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/order.js:2741 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/part.js:55 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:59 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:63 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:67 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:81 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:166 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:174 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:181 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:199 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:208 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:209 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:265 +msgid "Copy Image" +msgstr "" + +#: templates/js/translated/part.js:266 +msgid "Copy image from original part" +msgstr "" + +#: templates/js/translated/part.js:274 +msgid "Copy bill of materials from original part" +msgstr "" + +#: templates/js/translated/part.js:281 +msgid "Copy Parameters" +msgstr "" + +#: templates/js/translated/part.js:282 +msgid "Copy parameter data from original part" +msgstr "" + +#: templates/js/translated/part.js:295 +msgid "Parent part category" +msgstr "" + +#: templates/js/translated/part.js:340 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:342 +msgid "Part edited" +msgstr "" + +#: templates/js/translated/part.js:353 +msgid "Create Part Variant" +msgstr "" + +#: templates/js/translated/part.js:423 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:425 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:430 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:432 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:449 +msgid "Validating the BOM will mark each line item as valid" +msgstr "" + +#: templates/js/translated/part.js:459 +msgid "Validate Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:462 +msgid "Validated Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:487 +msgid "Copy Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:1515 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:1754 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 +msgid "Path" +msgstr "" + +#: templates/js/translated/part.js:1812 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/part.js:1870 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:1892 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1906 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1931 +#, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1988 +#, python-brace-format +msgid "Edit ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1989 +#, python-brace-format +msgid "Delete ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:2103 +msgid "Current Stock" +msgstr "" + +#: templates/js/translated/part.js:2136 +msgid "No scheduling information available for this part" +msgstr "" + +#: templates/js/translated/part.js:2162 +msgid "Scheduled Stock Quantities" +msgstr "" + +#: templates/js/translated/part.js:2232 +msgid "Single Price" +msgstr "" + +#: templates/js/translated/part.js:2251 +msgid "Single Price Difference" +msgstr "" + +#: templates/js/translated/plugin.js:22 +msgid "The Plugin was installed" +msgstr "" + +#: templates/js/translated/report.js:67 +msgid "items selected" +msgstr "" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "" + +#: templates/js/translated/report.js:119 +msgid "Stock item(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:136 templates/js/translated/report.js:189 +#: templates/js/translated/report.js:243 templates/js/translated/report.js:297 +#: templates/js/translated/report.js:351 +msgid "No Reports Found" +msgstr "" + +#: templates/js/translated/report.js:137 +msgid "No report templates found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/report.js:172 +msgid "Select Builds" +msgstr "" + +#: templates/js/translated/report.js:173 +msgid "Build(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:190 +msgid "No report templates found which match selected build(s)" +msgstr "" + +#: templates/js/translated/report.js:226 +msgid "Part(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:244 +msgid "No report templates found which match selected part(s)" +msgstr "" + +#: templates/js/translated/report.js:279 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/translated/report.js:280 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/report.js:298 templates/js/translated/report.js:352 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/translated/report.js:333 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/translated/report.js:334 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + +#: templates/js/translated/stock.js:72 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:100 +msgid "Confirm Stock Serialization" +msgstr "" + +#: templates/js/translated/stock.js:109 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:153 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:193 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:232 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:238 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:303 +msgid "Stock item duplicated" +msgstr "" + +#: templates/js/translated/stock.js:393 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:406 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:431 +msgid "Find Serial Number" +msgstr "" + +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 +msgid "Enter serial number" +msgstr "" + +#: templates/js/translated/stock.js:452 +msgid "Enter a serial number" +msgstr "" + +#: templates/js/translated/stock.js:472 +msgid "No matching serial number" +msgstr "" + +#: templates/js/translated/stock.js:481 +msgid "More than one matching result found" +msgstr "" + +#: templates/js/translated/stock.js:604 +msgid "Confirm stock assignment" +msgstr "" + +#: templates/js/translated/stock.js:605 +msgid "Assign Stock to Customer" +msgstr "" + +#: templates/js/translated/stock.js:682 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:683 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:685 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:686 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:772 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:773 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:868 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:869 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:875 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:876 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:880 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:881 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:885 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:886 users/models.py:214 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:890 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:983 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:983 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:1023 +msgid "You must select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:1181 +msgid "PASS" +msgstr "" + +#: templates/js/translated/stock.js:1183 +msgid "FAIL" +msgstr "" + +#: templates/js/translated/stock.js:1188 +msgid "NO RESULT" +msgstr "" + +#: templates/js/translated/stock.js:1235 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1238 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:1264 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:1320 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:1485 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1507 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1536 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:1540 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:1548 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:1554 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1712 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:1717 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:1720 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:1724 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:1726 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:1732 +msgid "Serialized stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:1734 +msgid "Stock item has been fully allocated" +msgstr "" + +#: templates/js/translated/stock.js:1736 +msgid "Stock item has been partially allocated" +msgstr "" + +#: templates/js/translated/stock.js:1741 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:1748 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:1750 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:1752 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:1756 +#: templates/js/translated/table_filters.js:188 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:1807 +msgid "Stocktake" +msgstr "" + +#: templates/js/translated/stock.js:1889 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:1927 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:2099 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:2113 +msgid "Select Status Code" +msgstr "" + +#: templates/js/translated/stock.js:2114 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/translated/stock.js:2369 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2426 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2445 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2463 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2486 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:2494 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:2570 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:2621 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2657 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2658 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2660 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2661 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 +msgid "Select part to install" +msgstr "" + +#: templates/js/translated/table_filters.js:56 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:60 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:64 +msgid "Validated" +msgstr "" + +#: templates/js/translated/table_filters.js:72 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:110 +#: templates/js/translated/table_filters.js:183 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:111 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:429 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:126 +#: templates/js/translated/table_filters.js:468 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:136 +#: templates/js/translated/table_filters.js:218 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:225 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:140 +#: templates/js/translated/table_filters.js:226 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:229 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:230 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:147 +#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/table_filters.js:221 +#: templates/js/translated/table_filters.js:222 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:152 +#: templates/js/translated/table_filters.js:243 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:401 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:164 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:169 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:173 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:174 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:179 +msgid "Stock is available for use" +msgstr "" + +#: templates/js/translated/table_filters.js:184 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:189 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:194 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:198 +msgid "In Production" +msgstr "" + +#: templates/js/translated/table_filters.js:199 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:203 +msgid "Include Variants" +msgstr "" + +#: templates/js/translated/table_filters.js:204 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:208 +msgid "Installed" +msgstr "" + +#: templates/js/translated/table_filters.js:209 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:214 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:234 +#: templates/js/translated/table_filters.js:235 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:253 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:262 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:268 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 +msgid "Assigned to me" +msgstr "" + +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 +msgid "Outstanding" +msgstr "" + +#: templates/js/translated/table_filters.js:430 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:434 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:435 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:440 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "" + +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/tables.js:50 +msgid "Export Table Data" +msgstr "" + +#: templates/js/translated/tables.js:54 +msgid "Select File Format" +msgstr "" + +#: templates/js/translated/tables.js:433 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:436 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:441 +msgid "Showing all rows" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 +#: templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/js/translated/tables.js:450 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:453 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:456 +msgid "Refresh" +msgstr "" + +#: templates/js/translated/tables.js:459 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:462 +msgid "Columns" +msgstr "" + +#: templates/js/translated/tables.js:465 +msgid "All" +msgstr "" + +#: templates/navbar.html:44 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:56 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:141 +msgid "Login" +msgstr "" + +#: templates/navbar.html:162 +msgid "About InvenTree" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:17 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:33 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:40 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:45 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:46 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:47 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete stock" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:201 +msgid "Permission set" +msgstr "" + +#: users/models.py:209 +msgid "Group" +msgstr "" + +#: users/models.py:212 +msgid "View" +msgstr "" + +#: users/models.py:212 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:214 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:216 +msgid "Change" +msgstr "" + +#: users/models.py:216 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:218 +msgid "Permission to delete items" +msgstr "" + diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 00052b29e0..06c7bb06ce 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Keine Aktion angegeben" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Keine passende Aktion gefunden" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "Doppelte Seriennummer: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -122,7 +122,7 @@ msgstr "Fehlende Datei" msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Anhang" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Link" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -152,11 +152,12 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Benutzer" @@ -193,42 +194,42 @@ msgstr "Fehler beim Umbenennen" msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Name" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Beschreibung" @@ -240,7 +241,7 @@ msgstr "Beschreibung (optional)" msgid "parent" msgstr "Eltern" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" @@ -294,87 +295,99 @@ msgstr "Erforderliche Spalte '{name}' fehlt" msgid "Duplicate column: '{col}'" msgstr "Doppelte Spalte: '{col}'" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "Persisch" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "Ungarisch" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portugiesisch" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Chinesisch" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Ausstehend" @@ -399,14 +412,14 @@ msgstr "Ausstehend" msgid "Placed" msgstr "Platziert" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Fertig" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Storniert" @@ -445,91 +458,95 @@ msgstr "Zerstört" msgid "Rejected" msgstr "Zurückgewiesen" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Alter Bestand-Verfolgungs-Eintrag" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Lagerartikel erstellt" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Lagerartikel bearbeitet" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Seriennummer hinzugefügt" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Bestand gezählt" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Bestand manuell hinzugefügt" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Bestand manuell entfernt" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Standort geändert" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "In Baugruppe installiert" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Aus Baugruppe entfernt" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Komponente installiert" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Komponente entfernt" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Vom übergeordneten Element geteilt" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Unterobjekt geteilt" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "In Variante umgewandelt" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Zum Kunden geschickt" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Rücksendung vom Kunden" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Endprodukt erstellt" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Endprodukt fertiggestellt" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "Durch Bauauftrag verbraucht" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Gegen Bestellung empfangen" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "in Arbeit" @@ -589,7 +606,7 @@ msgstr "Passwort eingeben" msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Systeminformationen" @@ -654,11 +671,11 @@ msgstr "Bauauftrag" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Bauaufträge" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Referenz" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Kurze Beschreibung des Baus" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Teil" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Quell-Lagerort" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Bau-Statuscode" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Losnummer" @@ -783,8 +801,8 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Erstelldatum" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -805,7 +823,7 @@ msgstr "Fertigstellungsdatum" msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Aufgegeben von" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -826,11 +844,11 @@ msgstr "Verantwortlicher Benutzer" msgid "User responsible for this build order" msgstr "Nutzer der für diesen Bauauftrag zuständig ist" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Externer Link" @@ -839,17 +857,17 @@ msgstr "Externer Link" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Notizen" @@ -869,69 +887,69 @@ msgstr "Endprodukt bereits hergstellt" msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Bauauftrag" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Quell-Lagerartikel" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -1013,8 +1031,8 @@ msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Seriennummer" @@ -1030,7 +1048,7 @@ msgstr "Seriennummern automatisch zuweisen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "Folgende Seriennummern existieren bereits" @@ -1040,15 +1058,15 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Lagerort" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Status" @@ -1098,8 +1116,8 @@ msgstr "Bauauftrag hat unvollständige Aufbauten" msgid "No build outputs have been created for this build order" msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "Stücklisten-Position" @@ -1138,31 +1156,31 @@ msgstr "Zuweisungen müssen angegeben werden" #: build/serializers.py:731 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" -msgstr "" +msgstr "Lagerort, von dem Teile bezogen werden sollen (leer lassen, um sie von jedem Lagerort zu nehmen)" #: build/serializers.py:739 msgid "Exclude Location" -msgstr "" +msgstr "Lagerort ausschließen" #: build/serializers.py:740 msgid "Exclude stock items from this selected location" -msgstr "" +msgstr "Lagerartikel vom ausgewählten Ort ausschließen" #: build/serializers.py:745 msgid "Interchangeable Stock" -msgstr "" +msgstr "Wechselbares Lagerbestand" #: build/serializers.py:746 msgid "Stock items in multiple locations can be used interchangeably" -msgstr "" +msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden" #: build/serializers.py:751 msgid "Substitute Stock" -msgstr "" +msgstr "Ersatzbestand" #: build/serializers.py:752 msgid "Allow allocation of substitute parts" -msgstr "" +msgstr "Zuordnung von Ersatzteilen erlauben" #: build/tasks.py:98 msgid "Stock required for build order" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Zieldatum" @@ -1250,33 +1268,33 @@ msgstr "Bauauftrag war fällig am %(target)s" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "Überfällig" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Fertig" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Auftrag" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Aufgegeben von" @@ -1294,184 +1312,188 @@ msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch unvollständige E msgid "Are you sure you wish to cancel this build?" msgstr "Sind Sie sicher, dass sie diesen Bauauftrag abbrechen möchten?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "Möchten Sie diesen Bauauftrag wirklich löschen?" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Bau-Status" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Ausgangs-Lager" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Ziel-Lager" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Zugewiesene Teile" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Losnummer" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Erstellt" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Bauauftrag ist nicht vollständig" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Unter-Bauaufträge" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Bestand Bauauftrag zuweisen" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Bestandszuordnung aufheben" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Bestandszuordnung aufheben" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" -msgstr "" +msgstr "Lagerartikel automatisch zuweisen" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" -msgstr "" +msgstr "Automatisch zuweisen" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" -msgstr "" +msgstr "Lagerartikel manuell dem Bauauftrag zuweisen" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Bestand zuweisen" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Benötigte Teile bestellen" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Teile bestellen" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Nicht verfolgter Bestand wurde Bauauftrag vollständig zugewiesen" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Nicht verfolgter Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Ausgewählte Positionen zuweisen" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Unfertige Endprodukte" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Neues Endprodukt anlegen" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "Neues Endprodukt" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Endproduktaktionen" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "Ausgewählte Endprodukt fertigstellen" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "Ausgewählte Endprodukte löschen" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "Endprodukte löschen" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Druck Aktionen" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Label drucken" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Anhänge" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Anmerkungen bearbeiten" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "Neuer Bauauftrag" @@ -1497,7 +1519,7 @@ msgstr "Bauauftragdetails" #: build/templates/build/sidebar.html:15 msgid "Completed Outputs" -msgstr "" +msgstr "Fertiggestellte Endprodukte" #: build/views.py:73 msgid "Build was cancelled" @@ -1544,849 +1566,937 @@ msgstr "{name.title()} Datei" msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "Wert ist keine gültige Option" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "Keine Gruppe" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "Neustart erforderlich" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "InvenTree Instanzname" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Firmenname" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Standardwährung" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Barcode-Scanner Unterstützung" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Vorlage" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Komponente" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Nachverfolgbar" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Preis in Formularen anzeigen" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "Teilpreis in einigen Formularen anzeigen" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "Preis in Stückliste anzeigen" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "Preisverlauf anzeigen" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "Historische Preise für Teil anzeigen" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "Ausgangsbestand erstellen" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "Interner Preis als Stückliste-Preis" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:891 +#: common/models.py:943 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:949 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:892 +#: common/models.py:950 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:898 +#: common/models.py:956 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:899 +#: common/models.py:957 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:905 +#: common/models.py:963 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:906 +#: common/models.py:964 msgid "Number of days stock items are considered stale before expiring" msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen" -#: common/models.py:908 +#: common/models.py:966 msgid "days" msgstr "Tage" -#: common/models.py:913 +#: common/models.py:971 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:914 +#: common/models.py:972 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:920 +#: common/models.py:978 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:921 +#: common/models.py:979 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:927 +#: common/models.py:985 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:928 +#: common/models.py:986 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:933 +#: common/models.py:991 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:934 +#: common/models.py:992 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:938 +#: common/models.py:996 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:939 +#: common/models.py:997 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:944 +#: common/models.py:1002 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:945 +#: common/models.py:1003 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:951 +#: common/models.py:1009 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:952 +#: common/models.py:1010 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:957 +#: common/models.py:1015 msgid "Enable registration" msgstr "Anmeldung erlauben" -#: common/models.py:958 +#: common/models.py:1016 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:963 +#: common/models.py:1021 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:964 +#: common/models.py:1022 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:969 +#: common/models.py:1027 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:970 +#: common/models.py:1028 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:975 +#: common/models.py:1033 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:976 +#: common/models.py:1034 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:981 +#: common/models.py:1039 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:982 +#: common/models.py:1040 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/models.py:987 +#: common/models.py:1045 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:988 +#: common/models.py:1046 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:993 +#: common/models.py:1051 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:994 +#: common/models.py:1052 msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" -#: common/models.py:999 +#: common/models.py:1057 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:1000 +#: common/models.py:1058 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:1007 +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "Plugins beim Start prüfen" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" + +#: common/models.py:1072 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:1008 +#: common/models.py:1073 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:1014 +#: common/models.py:1079 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:1015 +#: common/models.py:1080 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:1021 +#: common/models.py:1086 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:1192 +#: common/models.py:1257 +msgid "Enable email notifications" +msgstr "E-Mail-Benachrichtigungen aktivieren" + +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" +msgstr "Das Senden von Benachrichtigungen als E-Mails erlauben" + +#: common/models.py:1264 +msgid "Enable label printing" +msgstr "Labeldruck aktivieren" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "Labeldruck über die Website aktivieren" + +#: common/models.py:1271 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:1193 +#: common/models.py:1272 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1199 +#: common/models.py:1278 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:1200 +#: common/models.py:1279 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1206 +#: common/models.py:1285 +msgid "Search Parts" +msgstr "Teile suchen" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "Teile in der Suchvorschau anzeigen" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "Kategorien durchsuchen" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "Teilekategorien in der Suchvorschau anzeigen" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "Bestand durchsuchen" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "Lagerartikel in Suchvorschau anzeigen" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "Lagerorte durchsuchen" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "Lagerorte in Suchvorschau anzeigen" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "Firmen durchsuchen" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "Firmen in der Suchvorschau anzeigen" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "Bestellungen durchsuchen" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "Bestellungen in der Suchvorschau anzeigen" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "Aufträge durchsuchen" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "Aufträge in der Suchvorschau anzeigen" + +#: common/models.py:1334 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen" +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "Suche Bestand anzeigen" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "Bestand in Suchvorschau anzeigen" - -#: common/models.py:1220 +#: common/models.py:1341 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1221 +#: common/models.py:1342 msgid "Hide inactive parts in search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:1227 +#: common/models.py:1348 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:1228 +#: common/models.py:1349 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:1234 +#: common/models.py:1355 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:1235 +#: common/models.py:1356 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:1241 +#: common/models.py:1362 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren" +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" -#: common/models.py:1248 +#: common/models.py:1369 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:1249 +#: common/models.py:1370 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:1263 part/templates/part/detail.html:40 +#: common/models.py:1384 part/templates/part/detail.html:39 msgid "Part Scheduling" -msgstr "" +msgstr "Teilzeitplanung" -#: common/models.py:1264 +#: common/models.py:1385 msgid "Display part scheduling information" -msgstr "" +msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "Preis" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Aktiv" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "Token" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "Secret" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "Host" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "Header" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "Body" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Datei hochgeladen" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Übereinstimmende Felder" @@ -2409,7 +2519,7 @@ msgstr "Teile importiert" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Vorheriger Schritt" @@ -2477,7 +2587,7 @@ msgstr "Anlaufstelle" msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Bild" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Währung" @@ -2514,8 +2625,8 @@ msgstr "Währung" msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Basisteil" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "Teil auswählen" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Hersteller" @@ -2538,11 +2649,11 @@ msgstr "Hersteller" msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "MPN" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "Herstellerteil" @@ -2571,8 +2682,8 @@ msgstr "Parametername" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "Wert" @@ -2580,10 +2691,10 @@ msgstr "Wert" msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "Einheiten" @@ -2599,11 +2710,11 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Zulieferer" @@ -2613,7 +2724,7 @@ msgstr "Zulieferer auswählen" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Notiz" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "Verpackungen" @@ -2658,7 +2769,7 @@ msgstr "Verpackungen" msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "Vielfache" @@ -2668,7 +2779,7 @@ msgstr "Mehrere bestellen" #: company/models.py:708 msgid "last updated" -msgstr "" +msgstr "Letzte Aktualisierung" #: company/serializers.py:70 msgid "Default currency used for this supplier" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "Bild von URL herunterladen" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Kunde" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "Bild hochladen" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Zuliefererteile" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Neues Zuliefererteil anlegen" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "Optionen" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Teile bestellen" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Herstellerteile" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Zulieferer-Bestand" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Bestellungen" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Neue Bestellung anlegen" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Neue Bestellung" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "Aufträge" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Neuen Auftrag anlegen" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Neuer Auftrag" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Firmenbemerkungen" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "Zuliefererteil entfernen?" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "Alle ausgewählten Zulieferteile werden gelöscht" @@ -2872,83 +2985,83 @@ msgstr "Alle ausgewählten Zulieferteile werden gelöscht" msgid "Supplier List" msgstr "Zulieferer-Liste" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Hersteller" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Teil bestellen" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "Herstellerteil bearbeiten" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "Herstellerteil löschen" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "Internes Teil" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Zulieferer" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Zuliefererteil entfernen" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Löschen" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parameter" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Neuer Parameter" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "Parameter löschen" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "Parameter hinzufügen" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "Ausgewählte Parameter werden gelöscht" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "Parameter löschen" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "Zugewiesene Lagerartikel" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "Zulieferer-Bestellungen" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Teil bestellen" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "Preisinformationen ansehen" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -3026,11 +3139,13 @@ msgstr "Preisstaffel hinzufügen" msgid "No price break information found" msgstr "Keine Informationen zur Preisstaffel gefunden" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "Preisstaffel löschen" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" @@ -3044,18 +3159,18 @@ msgstr "Preisstaffel löschen" #: company/templates/company/supplier_part.html:273 msgid "Last updated" -msgstr "" +msgstr "Zuletzt aktualisiert" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Bestand" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "Zuliefererteil Bepreisung" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Bepreisung" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Lagerartikel" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Neuer Hersteller" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Kunden" @@ -3100,7 +3218,7 @@ msgstr "Kunden" msgid "New Customer" msgstr "Neuer Kunde" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Firmen" @@ -3108,24 +3226,24 @@ msgstr "Firmen" msgid "New Company" msgstr "Neue Firma" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Bild herunterladen" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Ungültige Antwort {code}" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" @@ -3349,9 +3467,9 @@ msgstr "Bestellung" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "Bestellung" @@ -3361,8 +3479,8 @@ msgstr "Zuliefererteil" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "Empfangen" @@ -3370,9 +3488,9 @@ msgstr "Empfangen" msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "Preis" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "Verkaufspreis" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "Position" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "Sendung" @@ -3478,7 +3596,7 @@ msgstr "Sendung" msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "Position" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "Elemente empfangen" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Teile empfangen" @@ -3700,9 +3818,9 @@ msgstr "Zulieferer-Teil auswählen" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Zeile entfernen" @@ -3718,7 +3836,7 @@ msgstr "Datei zur Bestellung hochladen" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Schritt %(step)s von %(count)s" @@ -3796,27 +3914,27 @@ msgstr "Positionen" msgid "Received Stock" msgstr "Empfangene Lagerartikel" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Bestellungs-Positionen" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Position hinzufügen" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "Ausgewählte Positionen erhalten" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Empfangene Teile" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Notizen zur Bestellung" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "Kundenreferenz" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Abgeschlossene Sendungen" @@ -3866,21 +3984,21 @@ msgstr "Warnung" msgid "Cancelling this order means that the order will no longer be editable." msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "Auftrags-Positionen" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Ausstehende Sendungen" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "Aktionen" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Neue Sendung" @@ -3951,52 +4069,52 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" -msgstr "" - -#: part/api.py:511 -msgid "Outgoing Sales Order" -msgstr "" +msgstr "Eingehende Bestellung" #: part/api.py:529 +msgid "Outgoing Sales Order" +msgstr "Ausgehender Auftrag" + +#: part/api.py:547 msgid "Stock produced by Build Order" -msgstr "" +msgstr "Lagerartikel produziert von Bauauftrag" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" -msgstr "" +msgstr "Lagerartikel für Bauauftrag benötigt" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "Gültig" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "Muss größer als 0 sein" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "Muss eine gültige Nummer sein" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "Standort für anfänglichen Bestand angeben" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Standard-Lagerort" @@ -4004,12 +4122,14 @@ msgstr "Standard-Lagerort" msgid "Total Stock" msgstr "Gesamtbestand" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "Bestellt" @@ -4041,14 +4161,14 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Teil-Kategorien" @@ -4057,9 +4177,10 @@ msgstr "Teil-Kategorien" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Teile" @@ -4084,472 +4205,482 @@ msgstr "Nächste verfügbare Seriennummer ist" msgid "Most recent serial number is" msgstr "Die neuste Seriennummer ist" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "Variante von" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "Kategorie" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Revision" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:992 +#: part/models.py:997 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:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "Benötigt" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Ungültiges Zeichen im Vorlagename ({c})" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "Wert" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "Teil-ID" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "Name des Teils" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "Teil-ID" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "Stufe" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Optional" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "Kaufwährung dieses Lagerartikels" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "Bauteil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "Keine Bauteilspalte angegeben" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "Benachrichtigungen über geringen Bestand" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "Der verfügbare Bestand für {part.name} ist unter das konfigurierte Mindestniveau gefallen" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "Sie haben keine Berechtigung zum Bearbeiten der Stückliste." @@ -4569,7 +4700,7 @@ msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am msgid "The BOM for %(part)s has not been validated." msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "Stücklisten-Aktionen" @@ -4621,7 +4752,7 @@ msgstr "Pfad zur Kategorie" msgid "Top level part category" msgstr "Oberste Teil-Kategorie" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Unter-Kategorien" @@ -4658,63 +4789,63 @@ msgstr "Exportieren" msgid "Export Data" msgstr "Exportieren" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "Teil-Kategorie hinzufügen" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "Teil hinzufügen" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "Ein weiteres Teil anlegen" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "Teil erfolgreich angelegt" #: part/templates/part/category_delete.html:7 msgid "Are you sure you want to delete this part category?" -msgstr "" +msgstr "Möchten Sie diese Kategorie wirklich löschen?" #: part/templates/part/category_delete.html:12 #, python-format msgid "This category contains %(n)s child categories" -msgstr "" +msgstr "Diese Kategorie enthält %(n)s Unter-Kategorien" #: part/templates/part/category_delete.html:14 #, python-format msgid "If this category is deleted, these child categories will be moved to %(category)s" -msgstr "" +msgstr "Wenn diese Kat. gelöscht wird, werden diese Unter-Kat. nach %(category)s verschoben" #: part/templates/part/category_delete.html:16 msgid "If this category is deleted, these child categories will be moved to the top level part category" -msgstr "" +msgstr "Wenn diese Kat. gelöscht wird, werden die Unter-Kat. in die übergeordnete Kat. verschoben" #: part/templates/part/category_delete.html:23 #, python-format msgid "This category contains %(n)s parts" -msgstr "" +msgstr "Diese Kategorie enthält %(n)s Teile" #: part/templates/part/category_delete.html:25 #, python-format msgid "If this category is deleted, these parts will be moved to %(category)s" -msgstr "" +msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile nach %(category)s verschoben" #: part/templates/part/category_delete.html:27 msgid "If this category is deleted, these parts will be moved to the top level part category" -msgstr "" +msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kat. verschoben" #: part/templates/part/category_sidebar.html:13 msgid "Import Parts" msgstr "Teile importieren" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "Teil duplizieren" @@ -4738,150 +4869,150 @@ msgstr "Teil evtl. Duplikat dieser Teile" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Teilbestand" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "Teile-Notizen" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "Neue Variante anlegen" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Stückliste" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Stückliste exportieren" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "Stücklisten-Bericht drucken" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "Stückliste hochladen" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "Neue Stücklisten-Position" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "Baugruppen" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "Gefertigte Teile" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "Bauauftragszuweisungen" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "Zulieferer" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "Herstellerteile löschen" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "Ausgewählte Stücklistenpositionen löschen?" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "verknüpftes Teil" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Teilenotizen bearbeiten" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Stückpreis Einkauf - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Stückpreis Differenz - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Stückpreis Zulieferer - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" @@ -4947,234 +5078,217 @@ msgstr "Benachrichtigungen für dieses Teil abonnieren" msgid "Barcode actions" msgstr "Barcode Aktionen" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Label drucken" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "Kosteninformationen ansehen" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Bestands-Aktionen" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "Bestand zählen" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "Teilbestand verschieben" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "Teile Aktionen" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "Teil duplizieren" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "Teil bearbeiten" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "Teil löschen" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "Teil ist Vorlage (Varianten können von diesem Teil erstellt werden)" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "Teil kann aus anderen Teilen angefertigt werden" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "Teil kann in Baugruppen benutzt werden" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "Teil wird per Seriennummer verfolgt" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "Teil kann von externen Zulieferern gekauft werden" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "Teil kann an Kunden verkauft werden" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "Teil ist virtuell (kein physisches Teil)" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "Inaktiv" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "Teildetails anzeigen" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "Dieses Teil ist eine Variante von %(link)s" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "Auf Lager" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "Für Bauaufträge benötigt" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" -msgstr "" +msgstr "Zu Bauaufträgen zugeordnet" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "Benötigt für Aufträge" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" -msgstr "" +msgstr "Zur Bestellung zugeordnet" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "Herstellbar" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "Im Bau" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "Minimaler Bestand" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "letzte Seriennummer" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "Nach Seriennummer suchen" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "Keine passenden Bilder gefunden" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "Teildetails ausblenden" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "Zulieferer-Preise" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "Stückpreis" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "Gesamtkosten" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "Stücklistenpreise" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "Kaufpreis pro Einheit" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "Gesamter Kaufpreis" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "Keine Stücklisten-Preise verfügbar" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "Interner Preis" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Varianten" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Benutzt in" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" -msgstr "" +msgstr "Zeitplan" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "Testvorlagen" @@ -5221,69 +5335,69 @@ msgstr "Es sind %(count)s Zulieferer für diesen Teil definiert. Wenn Sie diesen msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt werden. Das Löschen dieses Teils wird diese Tracking-Informationen dauerhaft entfernen." -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "Preisspannen" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "Zuliefererkosten anzeigen" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "Einkaufpreis anzeigen" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "Stücklisten-Kosten" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "Verkaufskosten anzeigen" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "Verkaufspreis anzeigen" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "Berechnungsparameter" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "Zuliefererkosten" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "Zur Übersicht gehen" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "Bestandspreise" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "Für dieses Teil sind keine Bestandspreise verfügbar." -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "Interne Kosten" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "Interne Preisspanne hinzufügen" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "Stücklistenkosten" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "Verkaufskosten" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." @@ -5291,9 +5405,8 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." msgid "Set category for the following parts" msgstr "Kategorie für Teile setzen" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "Kein Bestand" @@ -5347,112 +5460,109 @@ msgstr "Neue Teilevariante anlegen" msgid "Create a new variant of template '%(full_name)s'." msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'." -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "Unbekannte Datenbank" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "Teil-Kategorie auswählen" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "Kategorie für {n} Teile setzen" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "Referenzen zuteilen" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "Kein(e)" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "neue Preisstaffel hinzufügt" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "Interne Preisspanne bearbeiten" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "Interne Preisspanne löschen" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "Ihre Umgebung verwendet eine veraltete Git-Version. Dies hindert InvenTree daran, Plugin-Details zu laden." -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "Labeldruck fehlgeschlagen" + +#: plugin/integration.py:146 msgid "No author found" msgstr "Kein Autor gefunden" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "Kein Datum gefunden" @@ -5480,7 +5590,7 @@ msgstr "Name des Plugins" msgid "Is the plugin active" msgstr "Ist das Plugin aktiv" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "Plugin" @@ -5516,35 +5626,35 @@ msgstr "Auswahleinstellungen" msgid "A setting with multiple choices" msgstr "Eine Einstellung mit mehreren Optionen" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "Quell-URL" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Quelle für das Paket - dies kann eine eigene Registry oder ein VCS-Pfad sein" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "Paket-Name" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "Plugin-Installation bestätigen" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Dies wird dieses Plugin sofort in die aktuelle Instanz installieren. Die Instanz wird sofort in Wartung gehen." -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "Installation nicht bestätigt" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "Entweder Paketname oder URL muss angegeben werden" @@ -5646,12 +5756,12 @@ msgid "Stock Item Test Report" msgstr "Lagerartikel Test-Bericht" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Seriennummer" @@ -5660,19 +5770,19 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "Datum" @@ -5690,26 +5800,26 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "Seriennummer" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -5749,228 +5859,232 @@ msgstr "nicht mehr verbauen bestätigen" msgid "Confirm removal of installed stock items" msgstr "Entfernen der verbauten Lagerartikel bestätigen" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses Lagerartikel ist gelagert in" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "Lagerartikel-Notizen" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "In Teil umgewandelt" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "Test Notizen" @@ -5978,10 +6092,6 @@ msgstr "Test Notizen" msgid "Purchase price of this stock item" msgstr "Kaufpreis für diesen Lagerartikel" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "Kaufwährung dieses Lagerartikels" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben" @@ -6007,7 +6117,7 @@ msgstr "Optionales Notizfeld" msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" @@ -6083,11 +6193,11 @@ msgstr "Primärschlüssel Lagerelement" msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Informationen zur Bestand-Verfolgung" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "neuer Eintrag" @@ -6104,7 +6214,7 @@ msgstr "Dieser Lagerartikel hat keine Kinder" msgid "Test Data" msgstr "Testdaten" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "Test-Bericht" @@ -6116,15 +6226,15 @@ msgstr "Testdaten löschen" msgid "Add Test Data" msgstr "Testdaten hinzufügen" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -6142,180 +6252,180 @@ msgstr "Barcode anhängen" msgid "Scan to Location" msgstr "zu Lagerort einscannen" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "Druck Aktionen" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "Bestand zählen" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "Bestand hinzufügen" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "Bestand entfernen" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "Bestand serialisieren" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Bestand verschieben" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "Kunden zuweisen" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "zu Bestand zurückgeben" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "Lagerartikel deinstallieren" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "Lagerartikel installieren" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "Installieren" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "in Variante ändern" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "Lagerartikel duplizieren" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "Lagerartikel bearbeiten" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "Lagerartikel löschen" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "vorherige Seite" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "Zur vorherigen Seriennummer wechseln" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "nächste Seite" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden." -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht." -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "Dieser Lagerartikel ist einem Auftrag zugewiesen" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "Dieser Lagerartikel ist einem Bauauftrag zugewiesen" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden." -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Kein Lagerort gesetzt" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "Kein Hersteller ausgewählt" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "Tests" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "Nur Leserechte" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "Bestandsstatus bearbeiten" @@ -6336,66 +6446,59 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "Teile einchecken" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "Lagerort-Aktionen" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Lagerort bearbeiten" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "Lagerort löschen" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "Lagerortpfad" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "Oberster Lagerstandort" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "Standortbesitzer" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden." -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "Druck Aktionen" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Label drucken" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?" @@ -6403,30 +6506,30 @@ msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?" #: stock/templates/stock/location_delete.html:13 #, python-format msgid "This location contains %(n)s child locations" -msgstr "" +msgstr "Dieser Ort enthält %(n)s untergeordnete Orte" #: stock/templates/stock/location_delete.html:15 #, python-format msgid "If this location is deleted, these child locations will be moved to %(location)s" -msgstr "" +msgstr "Wenn dieser Standort gelöscht wird, werden diese untergeordneten Standorte nach %(location)s verschoben" #: stock/templates/stock/location_delete.html:17 msgid "If this location is deleted, these child locations will be moved to the top level stock location" -msgstr "" +msgstr "Wenn dieser Standort gelöscht wird, werden diese untergeordneten Standorte an den Lagerstandort der obersten Ebene verschoben" #: stock/templates/stock/location_delete.html:25 #, python-format msgid "This location contains %(n)s stock items" -msgstr "" +msgstr "Dieser Lagerort enthält %(n)s Lagerartikel" #: stock/templates/stock/location_delete.html:27 #, python-format msgid "If this location is deleted, these stock items will be moved to %(location)s" -msgstr "" +msgstr "Wenn dieser Standort gelöscht wird, werden diese Lagerartikel nach %(location)s verschoben" #: stock/templates/stock/location_delete.html:29 msgid "If this location is deleted, these stock items will be moved to the top level stock location" -msgstr "" +msgstr "Wenn dieser Standort gelöscht wird, werden diese Lagerartikel an den Lagerstandort der obersten Ebene verschoben" #: stock/templates/stock/stock_app_base.html:16 msgid "Loading..." @@ -6469,11 +6572,11 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "Lagerartikel-Ort bearbeiten" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)" @@ -6513,7 +6616,7 @@ msgstr "Lagerartikel-QR-Code" msgid "Uninstall Stock Items" msgstr "Lagerartikel deinstallieren" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "Bestands-Anpassung bestätigen" @@ -6521,71 +6624,72 @@ msgstr "Bestands-Anpassung bestätigen" msgid "Uninstalled stock items" msgstr "Lagerartikel deinstalliert" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Neuen Lagerort erstellen" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "Neuen Lagerartikel hinzufügen" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "Bestand duplizieren" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "Anzahl kann nicht negativ sein" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "Bestand-Lagerort löschen" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "Bestand-Tracking-Eintrag löschen" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "Bestand-Verfolgungs-Eintrag bearbeiten" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "Bestand-Verfolgungs-Eintrag hinzufügen" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "Zugriff verweigert" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "Keine Berechtigung zum Anzeigen dieser Seite." -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "Seite nicht gefunden" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "Seite existiert nicht" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "Interner Serverfehler" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" -msgstr "Der InvenTree-Server hat einen internen Fehler geworfen" - #: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "Weitere Details finden Sie im Fehlerlog im Admin-Interface" @@ -6625,6 +6729,10 @@ msgstr "kürzlich aktualisiert" msgid "Depleted Stock" msgstr "Verbrauchter Bestand" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "Für Bauaufträge benötigt" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "abgelaufener Bestand" @@ -6657,6 +6765,70 @@ msgstr "ausstehende Aufträge" msgid "Overdue Sales Orders" msgstr "überfällige Aufträge" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "Benachrichtigungsverlauf" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "Benachrichtigungsverlauf aktualisieren" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "Ausstehende Benachrichtigungen" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "Alle als gelesen markieren" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "Ausstehende Benachrichtigungen aktualisieren" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "Benachrichtigungen" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "ID" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "Alter" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "Meldung" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "Benachrichtigung löschen" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "Keine ungelesenen Benachrichtigungen" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "Kein Benachrichtigungsverlauf" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "Posteingang" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "Verlauf" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "Suchergebnisse" @@ -6702,7 +6874,7 @@ msgid "Server Settings" msgstr "Server Einstellungen" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "Anmeldeeinstellungen" @@ -6711,7 +6883,7 @@ msgid "Signup" msgstr "Anmelden" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "Einstellungen" @@ -6749,49 +6921,49 @@ msgid "Plugin Settings" msgstr "Plugin-Einstellungen" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." -msgstr "Wenn Sie die folgenden Einstellungen ändern, müssen Sie InvenTree sofort neu starten. Ändern Sie dies nicht während der aktiven Nutzung." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." +msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "Plugins" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "Plugin installieren" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "Autor" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "Version" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "Code Beispiel" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "Inaktive Plugins" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "Plugin-Fehlerstapel" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "Stufe" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "Meldung" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6826,8 +6998,8 @@ msgid "This plugin was installed as a package" msgstr "Dieses Plugin wurde als Paket installiert" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" -msgstr "Dieses Plugin wurde in einem lokalen InvenTree Pfad gefunden" +msgid "This plugin was found in a local server path" +msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" @@ -6876,40 +7048,36 @@ msgstr "Kein Wert angegeben" msgid "Edit setting" msgstr "Einstellungen ändern" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "Plugin-Einstellungen bearbeiten" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "Allgemeine Einstellungen bearbeiten" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "Benutzereinstellungen bearbeiten" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "Keine Kategorie-Parametervorlagen gefunden" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" msgstr "Vorlage bearbeiten" -#: templates/InvenTree/settings/settings.html:231 -#: templates/InvenTree/settings/settings.html:330 +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "Vorlage löschen" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "Keine Teilparametervorlagen gefunden" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "ID" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6934,28 +7102,28 @@ msgstr "Startseite" msgid "Search Settings" msgstr "Sucheinstellungen" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "Etikettendruck" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "Berichte" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "Allgemeine Einstellungen" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "Serverkonfiguration" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "Währungen" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "Kategorien" @@ -6974,7 +7142,8 @@ msgid "Change Password" msgstr "Passwort ändern" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Bearbeiten" @@ -7185,8 +7354,8 @@ msgstr "Hilf bei der Übersetzung!" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "Die Übersetzung von InvenTree wird von Nutzern via Crowdin betrieben. Wir ermutigen zur und freuen uns über jede Mithilfe." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -7196,6 +7365,10 @@ msgstr "Startseite-Einstellungen" msgid "Label Settings" msgstr "Labeleinstellungen" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "Benachrichtigungs-Einstellungen" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "InvenTree-Versionsinformationen" @@ -7280,37 +7453,29 @@ msgstr "Bitte bestätigen Sie, dass %(email)s e msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte fordern Sie eine neue E-Mail Bestätigung an." -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "Einloggen" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "Bitte melden Sie sich mit einem Ihrer bestehenden Drittkonten an oder registrieren Sie sich für ein Konto und melden Sie sich unten an:" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "Wenn Sie noch kein Konto erstellt haben, dann bitteregistrieren Sie sich zuerst." -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "Passwort vergessen?" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "InvenTree Demo-Instanz" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "Für Anmeldedetails hier klicken" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "oder SSO verwenden" @@ -7321,7 +7486,7 @@ msgstr "Ausloggen" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "Möchtest Sie sich wirklich abmelden?" +msgstr "Möchten Sie sich wirklich abmelden?" #: templates/account/logout.html:19 msgid "Back to Site" @@ -7451,15 +7616,15 @@ msgstr "Link hinzufügen" msgid "Add Attachment" msgstr "Anhang hinzufügen" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "Server-Neustart erforderlich" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "Eine Konfigurationsoption wurde geändert, die einen Neustart des Servers erfordert" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen" @@ -7481,14 +7646,15 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "Benötigte Menge" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Verfügbar" @@ -7498,15 +7664,6 @@ msgstr "Verfügbar" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "Sie erhalten diese E-Mail, weil Sie Benachrichtigungen für diesen Teil abonniert haben " -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "InvenTree-Version" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr " Der verfügbare Bestand für %(part)s ist unter das konfigurierte Mindestniveau gefallen" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen" @@ -7531,67 +7688,67 @@ msgstr "Der angegebene Server muss erreichbar sein" msgid "Remote image must not exceed maximum allowable file size" msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Fehler 400: Fehlerhafte Anfrage" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "Fehler-Code 400 zurückgegeben" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Fehler 405: Methode nicht erlaubt" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "HTTP-Methode für diese URL nicht erlaubt" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Unbehandelter Fehler-Code" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Fehler-Code" @@ -7660,7 +7817,7 @@ msgstr "Ungültige Antwort von Server" msgid "Scan barcode data below" msgstr "Barcode unterhalb scannen" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "Barcode scannen" @@ -7680,45 +7837,44 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco msgid "Unlink" msgstr "Entfernen" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "Lagerartikel entfernen" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Lagerartikel in Lagerort buchen" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Einbuchen" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Fehler bei Bestandsübertragung" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "Kein Barcode vorhanden" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Lagerartikel bereits gescannt" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Lagerartikel besteht bereits in diesem Lagerort" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Lagerartikel hinzugefügt" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "Barcode entspricht keinem Lagerartikel" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "In Lagerorten buchen" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Barcode entspricht keinem Lagerort" @@ -7816,67 +7972,84 @@ msgstr "Ersatzteil hinzufügen" msgid "Edit BOM Item Substitutes" msgstr "Stücklisten Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "Varianten erlaubt" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "Kein Lagerbestand verfügbar" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "Enthält Ersatzbestand" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "Ersatzteile" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "Kaufpreisspanne" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "Durchschnittlicher Kaufpreis" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "Stückliste anzeigen" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "Stücklisten-Position kontrollieren" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "Diese Position wurde kontrolliert" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "Ersatzteile bearbeiten" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "Stücklisten-Position bearbeiten" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "Geerbt von übergeordneter Stückliste" @@ -7901,12 +8074,12 @@ msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "Letzte Seriennummer" @@ -7986,141 +8159,149 @@ msgstr "Standort nicht angegeben" msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "Anzahl pro" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Zugeordnet" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" -msgstr "" +msgstr "lädt" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens ein Teil auswählen" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" -msgstr "" +msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" -msgstr "" +msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Bestandszuordnung bestätigen" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "Keine passenden Lagerbestände" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" -msgstr "" +msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" -msgstr "" +msgstr "Lagerartikel werden automatisch diesem Bauauftrag zugewiesen, entsprechend den angegebenen Richtlinien" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" -msgstr "" +msgstr "Wenn ein Standort angegeben ist, wird der Lagerbestand nur von diesem Ort zugewiesen" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" -msgstr "" +msgstr "Wenn der Lagerbestand als austauschbar gilt, wird er vom ersten Standort zugewiesen, an dem er gefunden wird" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" -msgstr "" +msgstr "Wenn ein Ersatzbestand erlaubt ist, wird es dort verwendet, wo kein Vorrat des Primärteils gefunden werden kann" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" -msgstr "" +msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "Keine Information" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "Keine Teile zugeordnet zu" @@ -8185,34 +8366,34 @@ msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "Vorlagenteil" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "Parameter löschen" @@ -8292,7 +8473,7 @@ msgstr "Fehler in Formular" msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "Suche" @@ -8312,61 +8493,73 @@ msgstr "Feldname" msgid "Select Columns" msgstr "Spalten auswählen" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NEIN" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "Notiz aktualisiert" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "Label an den Drucker gesendet" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "Lagerartikel müssen ausgewählt sein bevor Labels gedruckt werden können" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "Keine Labels gefunden" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "Keine Labels die zu Lagerartikel passen gefunden" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "Bestands-Lagerort auswählen" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "Bestands-Lagerort(e) müssen ausgewählt sein um Labels zu drucken" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "Keine Labels für die ausgewählten Bestands-Lagerort(e) gefunden" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "Teile(e) müssen ausgewählt sein bevor Labels gedruckt werden können" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "Keine Labels zu den ausgewählten Teilen gefunden" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "Drucker auswählen" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "Als PDF exportieren" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "Lagerartikel ausgewählt" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "Label auswählen" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "Label-Vorlage auswählen" @@ -8429,43 +8622,59 @@ msgstr "Fehler 400 von Server erhalten" msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "Firmen-ID" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "Bestands-ID" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "Standort-ID" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "Bauauftrag-ID" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "Bestell-ID" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "Sendungs-ID" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "Kategorie-ID" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "Herstellerteil-ID" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "Zuliefererteil-ID" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "Als ungelesen markieren" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "Als gelesen markieren" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "Keine ungelesenen Benachrichtigungen" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "Benachrichtigungen erscheinen hier" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "Dieser Sendung wurden keine Artikel zugewiesen" @@ -8518,7 +8727,7 @@ msgstr "Seriennummern hinzufügen" msgid "Quantity to receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "Status" @@ -8542,7 +8751,7 @@ msgstr "Empfang der Teile bestätigen" msgid "Receive Purchase Order Items" msgstr "Bestellpositionen erhalten" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" @@ -8571,7 +8780,7 @@ msgid "Total" msgstr "Summe" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "Stück-Preis" @@ -8580,11 +8789,11 @@ msgid "Total Price" msgstr "Gesamtpreis" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "Position empfangen" @@ -8665,7 +8874,7 @@ msgid "Delete Stock Allocation" msgstr "Bestands-Zuordnung löschen" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "an Kunde versand" @@ -8785,169 +8994,177 @@ msgstr "Parameterdaten vom Originalteil kopieren" msgid "Parent part category" msgstr "Übergeordnete Teilkategorie" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "Teil bearbeiten" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "Teil bearbeitet" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "Teil-Variante anlegen" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "Benachrichtigungen für dieses Teil abonnieren" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "Die Stückliste zu validieren markiert jede Zeile als gültig" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "Stückliste prüfen" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "überprüfte Stückliste" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Nachverfolgbares Teil" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "virtuelles Teil" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Abonnierter Teil" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Verkäufliches Teil" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Keine Varianten gefunden" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Teile-Beziehung löschen" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "Teile-Beziehung löschen" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "Keine Teile gefunden" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "Keine Kategorie" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "Kein Lagerbestand verfügbar" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "Nachverfolgbares Teil" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "virtuelles Teil" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "Abonnierter Teil" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "Verkäufliches Teil" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Keine Varianten gefunden" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "Teile-Beziehung löschen" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "Teile-Beziehung löschen" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "Keine Teile gefunden" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "Nicht verfügbar" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Keine Kategorie" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "Listenansicht" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "Rasteransicht" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "Baumansicht" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "Pfad" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "Dieses Testergebnis ist für ein Hauptteil" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "Testergebnis-Vorlage bearbeiten" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "Testergebnis-Vorlage löschen" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "Keine ${human_name} Informationen gefunden" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} bearbeiten" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} löschen" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" -msgstr "" +msgstr "Aktueller Lagerbestand" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" -msgstr "" +msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" -msgstr "" +msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "Einzelpreis" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "Einzelpreisdifferenz" @@ -9021,6 +9238,14 @@ msgstr "Aufträge auswählen" msgid "Sales Order(s) must be selected before printing report" msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "Ergebnisse minimieren" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "Ergebnisse entfernen" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "Lagerartikel serialisieren" @@ -9033,344 +9258,328 @@ msgstr "Lager-Serialisierung bestätigen" msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "Neuer Lagerstandort" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "Dieser Teil kann nicht serialisiert werden" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" -msgstr "" +msgstr "Lagerartikel dupliziert" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "Neuer Lagerartikel erstellt" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel erstellt" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "Mehrere Ergebnisse gefunden" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "Bestand Zuweisung bestätigen" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "Einem Kunden zuordnen" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "Zusammenführung der Artikel bestätigen" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "Artikel zusammenführen" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "Anzahl" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "Entfernen" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "Sie müssen mindestens einen Lagerartikel auswählen" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "Test bestanden" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "In Arbeit" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Element verbaut" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "Lagerartikel abgewiesen" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "Lagerartikel verloren" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "Lagerartikel zerstört" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "gelöscht" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "Inventur" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "Teile" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "lose" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "Lagerorte" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "unbekannter Lagerort" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "Artikelinformationen nicht verfügbar" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "Tracking-Eintrag bearbeiten" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "Tracking-Eintrag löschen" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "Lagerartikel entfernen" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "Einen weiteren Lagerartikel in dieses Teil installiert" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "Dieser Lagerartikel ist aktuell vorhanden" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" +msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "Teil zur Installation auswählen" @@ -9401,12 +9610,12 @@ msgstr "Lagerorte einschließen" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "Unterkategorien einschließen" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "Abonniert" @@ -9443,12 +9652,12 @@ msgid "Serial number" msgstr "Seriennummer" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "Losnummer" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "Aktive Teile" @@ -9517,64 +9726,88 @@ msgstr "zeige zu Kunden zugeordnete Einträge" msgid "Stock status" msgstr "Status" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "Hat Batch-Code" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "Nachverfolgt" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "Lagerbestand wird entweder per Batch-Code oder Seriennummer verfolgt" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "Hat Einkaufspreis" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "Bestand mit Einkaufspreis anzeigen" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "Zeige abgelaufene Lagerartikel" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "Bestand, der bald ablaufen, anzeigen" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "Test bestanden" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "Installierte Elemente einschließen" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "Bauauftrags-Status" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "Mir zugewiesen" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "ausstehend" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "verfügbarer Bestand" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "Auf Lager" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "Verfügbarer Lagerbestand" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "Käuflich" @@ -9614,7 +9847,8 @@ msgstr "von" msgid "rows" msgstr "Zeilen" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Suche" @@ -9643,29 +9877,41 @@ msgstr "Spalten" msgid "All" msgstr "Alle" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Kaufen" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Verkaufen" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "Benachrichtigungen anzeigen" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "Neue Benachrichtigungen" + +#: templates/navbar.html:139 msgid "Logout" msgstr "Ausloggen" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "Einloggen" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "Über InvenTree" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "InvenTree Demo-Modus" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "Speichern" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "Zeige alle Benachrichtigungen und Verlauf" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -9679,6 +9925,26 @@ msgstr "Sie wurden erfolgreich ausgeloggt." msgid "Log in again" msgstr "Erneut einloggen" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "Suchergebnis anzeigen" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "Suche zurücksetzen" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "Ergebnisse filtern" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "Suche abbrechen" + +#: templates/search.html:35 +msgid "No search results" +msgstr "Keine Treffer gefunden" + #: templates/stats.html:9 msgid "Server" msgstr "Server" @@ -9831,35 +10097,35 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "Gruppe" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "Ansicht" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "Ändern" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 81f704a26c..7be66a0670 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "" @@ -152,11 +152,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "" @@ -193,42 +194,42 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "" @@ -240,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:666 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:667 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:668 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Spanish (Mexican)" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "French" -msgstr "" - -#: InvenTree/settings.py:671 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Hungarian" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:674 -msgid "Japanese" -msgstr "" - #: InvenTree/settings.py:675 -msgid "Korean" +msgid "Czech" msgstr "" #: InvenTree/settings.py:676 -msgid "Dutch" +msgid "German" msgstr "" #: InvenTree/settings.py:677 -msgid "Norwegian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:678 -msgid "Polish" +msgid "English" msgstr "" #: InvenTree/settings.py:679 -msgid "Portugese" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:680 -msgid "Russian" +msgid "Spanish (Mexican)" msgstr "" #: InvenTree/settings.py:681 -msgid "Swedish" +msgid "Farsi / Persian" msgstr "" #: InvenTree/settings.py:682 -msgid "Thai" +msgid "French" msgstr "" #: InvenTree/settings.py:683 -msgid "Turkish" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:684 -msgid "Vietnamese" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:685 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "" @@ -399,14 +412,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "" @@ -445,91 +458,95 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -589,7 +606,7 @@ msgstr "" msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 03fc6c532c..8c10af5c61 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "endpoint API no encontrado" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "No se especificó ninguna acción" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "No se encontró ninguna acción coincidente" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" @@ -122,7 +122,7 @@ msgstr "Archivo no encontrado" msgid "Missing external link" msgstr "Falta enlace externo" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Archivo adjunto" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Seleccionar archivo para adjuntar" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Enlace" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Enlace a URL externa" @@ -152,11 +152,12 @@ msgstr "Comentario" msgid "File comment" msgstr "Comentario del archivo" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Usuario" @@ -193,42 +194,42 @@ msgstr "Error al cambiar el nombre del archivo" msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Nombre" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Descripción" @@ -240,7 +241,7 @@ msgstr "Descripción (opcional)" msgid "parent" msgstr "padre" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Debe ser un numero valido" @@ -270,111 +271,123 @@ msgstr "El archivo es demasiado grande" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "No hay columnas en el archivo" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "No hay filas de datos en el archivo" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "No se proporcionaron filas de datos" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "No hay columnas de datos proporcionadas" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Falta la columna requerida: '{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "Columna duplicada: '{col}'" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "Checo" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Alemán" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Griego" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Inglés" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Español" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Francés" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "Húngaro" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japonés" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Holandés" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polaco" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portugués" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Ruso" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Sueco" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Tailandés" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Chino" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "Las comprobaciones de estado del sistema InvenTree fallaron" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Pendiente" @@ -399,14 +412,14 @@ msgstr "Pendiente" msgid "Placed" msgstr "Colocado" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Terminado" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Cancelado" @@ -445,91 +458,95 @@ msgstr "Destruido" msgid "Rejected" msgstr "Rechazado" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Entrada antigua de rastreo de stock" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Artículo de stock creado" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Elemento de stock editado" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Número de serie asignado" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Stock contado" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Stock añadido manualmente" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Stock eliminado manualmente" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Ubicación cambiada" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Instalado en el ensamblaje" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Retirado del ensamblaje" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Artículo del componente instalado" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Elemento de componente eliminado" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Separar del elemento principal" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Dividir elemento secundario" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "Artículos de stock combinados" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "Convertir a variante" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Enviar al cliente" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Devolución del cliente" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Trabajo de ensamblaje creado" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Construir orden de salida completado" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" -msgstr "" +msgstr "Consumido por orden de construcción" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Recibido contra la orden de compra" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Producción" @@ -589,7 +606,7 @@ msgstr "Configurar Contraseña" msgid "Password fields must match" msgstr "Los campos de contraseña deben coincidir" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Información del sistema" @@ -654,11 +671,11 @@ msgstr "Construir órden" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Construir órdenes" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Referencia" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Breve descripción de la construcción o armado" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Construcción o Armado Superior" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Orden de Construcción o Armado a la que se asigna" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "Orden de Construcción o Armado a la que se asigna" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Parte" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Orden de Venta a la que se asigna" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Ubicación de la fuente" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Código de estado de construcción" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Numero de lote" @@ -783,8 +801,8 @@ msgstr "Numero de lote" msgid "Batch code for this build output" msgstr "Número de lote de este producto final" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Fecha de Creación" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Fecha de finalización" @@ -805,7 +823,7 @@ msgstr "Fecha de finalización" msgid "completed by" msgstr "terminado por" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Emitido por" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Responsable" @@ -826,11 +844,11 @@ msgstr "Responsable" msgid "User responsible for this build order" msgstr "Usuario responsable de esta orden" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Link externo" @@ -839,17 +857,17 @@ msgstr "Link externo" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Notas" @@ -869,69 +887,69 @@ msgstr "La construcción de la salida ya está completa" msgid "Build output does not match Build Order" msgstr "La salida de la construcción no coincide con el orden de construcción" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "La cantidad debe ser 1 para el stock serializado" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "Artículo de stock seleccionado no encontrado en BOM" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Construcción o Armado" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Armar para asignar partes" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Artículo de stock" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Producto original de stock" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Producto original de stock" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Cantidad" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "Cantidad de stock a asignar para construir" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Instalar en" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Artículo de stock de destino" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Ingrese la cantidad para la producción de la construcción" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Números de serie" @@ -1030,7 +1048,7 @@ msgstr "Autoasignar Números de Serie" msgid "Automatically allocate required items with matching serial numbers" msgstr "Asignar automáticamente los elementos requeridos con números de serie coincidentes" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "Los siguientes números de serie ya existen" @@ -1040,15 +1058,15 @@ msgstr "Debe proporcionarse una lista de salidas de construcción" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Unicación" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "Ubicación para las salidas de construcción completadas" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Estado" @@ -1098,8 +1116,8 @@ msgstr "El orden de construcción tiene salidas incompletas" msgid "No build outputs have been created for this build order" msgstr "No se han creado salidas para esta orden de construcción" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "Item de Lista de Materiales" @@ -1142,15 +1160,15 @@ msgstr "" #: build/serializers.py:739 msgid "Exclude Location" -msgstr "" +msgstr "Excluir ubicación" #: build/serializers.py:740 msgid "Exclude stock items from this selected location" -msgstr "" +msgstr "Excluir artículos de stock de esta ubicación seleccionada" #: build/serializers.py:745 msgid "Interchangeable Stock" -msgstr "" +msgstr "Stock intercambiable" #: build/serializers.py:746 msgid "Stock items in multiple locations can be used interchangeably" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Stock no ha sido asignado completamente a este pedido de construcción" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Fecha objetivo" @@ -1250,33 +1268,33 @@ msgstr "Esta construcción vence el %(target)s" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "Vencido" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Completados" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Orden de Venta" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Emitido por" @@ -1294,184 +1312,188 @@ msgstr "Orden de construcción no se puede completar ya que quedan salidas incom msgid "Are you sure you wish to cancel this build?" msgstr "¿Estás seguro de que quieres cancelar esta construcción?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Detalles de Trabajo" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Fuente de stock" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Las existencias se pueden tomar desde cualquier ubicación disponible." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destinación" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Se requiere ubicación de destino" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Partes asignadas" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Lote" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Creado" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Sin fecha objetivo" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Trabajo incompleto" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Órdenes de Trabajo herederas" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Asignar Stock a Trabajo" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Desasignar stock" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Desasignar stock" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Asignar stock" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Pedir partes necesarias" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Partes del pedido" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Stock no ha sido asignado completamente a esta Orden de Trabajo" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "El stock sin rastrear no ha sido asignado completamente para esta Orden de Trabajo" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Asignar partes seleccionadas" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Esta Orden de Trabajo no tiene ningún objeto BOM sin seguimiento asociados" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Salidas de Trabajo incompletas" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Crear nueva salida de trabajo" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "Nueva Salida de Trabajo" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Acciones de salida" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "Completa las salidas seleccionadas" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "Completar salidas" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "Eliminar salidas seleccionadas" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "Eliminar salidas" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Acciones de impresión" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Imprimir Etiquetas" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Salidas de Trabajo Completadas" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Adjuntos" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Notas del Trabajo" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Editar notas" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Asignación completa" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Todos los artículos de stock no rastreados han sido asignados" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "Nueva Orden de Trabajo" @@ -1544,849 +1566,937 @@ msgstr "Archivo {name.title()}" msgid "Select {name} file to upload" msgstr "Seleccione el archivo {name} para subir" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "Clave de configuración (debe ser única - mayúsculas y minúsculas)" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Valor de ajuste" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "El valor elegido no es una opción válida" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "El valor debe ser un valor booleano" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "El valor debe ser un entero" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "Cadena de clave debe ser única" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "Sin grupo" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "Reinicio requerido" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "Se ha cambiado una configuración que requiere un reinicio del servidor" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "Nombre de Instancia de InvenTree" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "Descriptor de cadena para la instancia del servidor" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "Usar nombre de instancia" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "Utilice el nombre de la instancia en la barra de título" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Nombre de empresa" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "Nombre interno de empresa" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "URL Base" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "URL base para la instancia del servidor" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Moneda predeterminada" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Moneda predeterminada" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Descargar desde URL" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Permitir la descarga de imágenes y archivos remotos desde la URL externa" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Soporte de código de barras" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Habilitar soporte para escáner de código de barras" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "Patrón de expresión regular para IPN de la parte coincidente" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Permitir IPN duplicado" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Permitir que varias partes compartan el mismo IPN" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Permitir editar IPN" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Permite cambiar el valor de IPN mientras se edita una pieza" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "Copiar parte de datos BOM" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "Copiar datos BOM por defecto al duplicar una parte" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "Copiar Parámetros de Pieza" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "Copiar datos de parámetro por defecto al duplicar una parte" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "Copiar parte de datos de prueba" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "Copiar datos de parámetro por defecto al duplicar una parte" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "Copiar plantillas de parámetros de categoría" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Copiar plantillas de parámetros de categoría al crear una parte" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Plantilla" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Las piezas son plantillas por defecto" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Montaje" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Las piezas pueden ser ensambladas desde otros componentes por defecto" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Componente" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "Las piezas pueden ser usadas como subcomponentes por defecto" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Comprable" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Las piezas son comprables por defecto" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Vendible" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Las piezas se pueden vender por defecto" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Rastreable" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Las piezas son rastreables por defecto" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtual" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Las piezas son virtuales por defecto" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "Mostrar importación en vistas" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "Mostrar el asistente de importación en algunas vistas de partes" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Mostrar precio en formularios" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "Mostrar precio de la pieza en algunos formularios" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "Mostrar precio en BOM" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "Incluye información de precios en tablas BOM" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "Mostrar Historial de Precios" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "Mostrar el precio histórico de la parte" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "Mostrar piezas relacionadas" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "Mostrar partes relacionadas para una pieza" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "Crear stock inicial" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "Crear stock inicial en la creación de partes" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "Precios internos" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "Habilitar precios internos para piezas" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "Precio interno como precio de BOM" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Usar el precio interno (si está establecido) en los cálculos de precios BOM" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "Formato de visualización de Nombre de Parte" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "Formato para mostrar el nombre de la pieza" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "Habilitar informes" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "Habilitar generación de informes" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Modo de depuración" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "Generar informes en modo de depuración (salida HTML)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Tamaño de página" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "Tamaño de página predeterminado para informes PDF" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Informe de prueba" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "Habilitar generación de informes de prueba" -#: common/models.py:891 +#: common/models.py:943 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:949 msgid "Stock Expiry" msgstr "Expiración de stock" -#: common/models.py:892 +#: common/models.py:950 msgid "Enable stock expiry functionality" msgstr "Habilitar la funcionalidad de expiración de stock" -#: common/models.py:898 +#: common/models.py:956 msgid "Sell Expired Stock" msgstr "Vender existencias caducadas" -#: common/models.py:899 +#: common/models.py:957 msgid "Allow sale of expired stock" msgstr "Permitir venta de existencias caducadas" -#: common/models.py:905 +#: common/models.py:963 msgid "Stock Stale Time" msgstr "Tiempo histórico de Stock" -#: common/models.py:906 +#: common/models.py:964 msgid "Number of days stock items are considered stale before expiring" msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar" -#: common/models.py:908 +#: common/models.py:966 msgid "days" msgstr "días" -#: common/models.py:913 +#: common/models.py:971 msgid "Build Expired Stock" msgstr "Crear Stock Caducado" -#: common/models.py:914 +#: common/models.py:972 msgid "Allow building with expired stock" msgstr "Permitir crear con stock caducado" -#: common/models.py:920 +#: common/models.py:978 msgid "Stock Ownership Control" msgstr "Control de Stock" -#: common/models.py:921 +#: common/models.py:979 msgid "Enable ownership control over stock locations and items" msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos" -#: common/models.py:927 +#: common/models.py:985 msgid "Build Order Reference Prefix" msgstr "Prefijo de Referencia de Orden de Trabajo" -#: common/models.py:928 +#: common/models.py:986 msgid "Prefix value for build order reference" msgstr "Valor de prefijo para referencia de la orden de trabajo" -#: common/models.py:933 +#: common/models.py:991 msgid "Build Order Reference Regex" msgstr "Regex de Referencia de Orden de Trabajo" -#: common/models.py:934 +#: common/models.py:992 msgid "Regular expression pattern for matching build order reference" msgstr "Patrón de expresión regular para referencia de orden de trabajo coincidente" -#: common/models.py:938 +#: common/models.py:996 msgid "Sales Order Reference Prefix" msgstr "Prefijo de referencia de pedido de venta" -#: common/models.py:939 +#: common/models.py:997 msgid "Prefix value for sales order reference" msgstr "Valor del prefijo para referencia del pedido de venta" -#: common/models.py:944 +#: common/models.py:1002 msgid "Purchase Order Reference Prefix" msgstr "Prefijo de orden de compra" -#: common/models.py:945 +#: common/models.py:1003 msgid "Prefix value for purchase order reference" msgstr "Valor del prefijo para referencia de la orden de compra" -#: common/models.py:951 +#: common/models.py:1009 msgid "Enable password forgot" msgstr "Habilitar función de contraseña olvidada" -#: common/models.py:952 +#: common/models.py:1010 msgid "Enable password forgot function on the login pages" msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión" -#: common/models.py:957 +#: common/models.py:1015 msgid "Enable registration" msgstr "Habilitar registro" -#: common/models.py:958 +#: common/models.py:1016 msgid "Enable self-registration for users on the login pages" msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión" -#: common/models.py:963 +#: common/models.py:1021 msgid "Enable SSO" msgstr "Habilitar SSO" -#: common/models.py:964 +#: common/models.py:1022 msgid "Enable SSO on the login pages" msgstr "Habilitar SSO en las páginas de inicio de sesión" -#: common/models.py:969 +#: common/models.py:1027 msgid "Email required" msgstr "Email requerido" -#: common/models.py:970 +#: common/models.py:1028 msgid "Require user to supply mail on signup" msgstr "Requiere usuario para suministrar correo al registrarse" -#: common/models.py:975 +#: common/models.py:1033 msgid "Auto-fill SSO users" msgstr "Auto-rellenar usuarios SSO" -#: common/models.py:976 +#: common/models.py:1034 msgid "Automatically fill out user-details from SSO account-data" msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO" -#: common/models.py:981 +#: common/models.py:1039 msgid "Mail twice" msgstr "Correo dos veces" -#: common/models.py:982 +#: common/models.py:1040 msgid "On signup ask users twice for their mail" msgstr "Al registrarse pregunte dos veces a los usuarios por su correo" -#: common/models.py:987 +#: common/models.py:1045 msgid "Password twice" msgstr "Contraseña dos veces" -#: common/models.py:988 +#: common/models.py:1046 msgid "On signup ask users twice for their password" msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña" -#: common/models.py:993 +#: common/models.py:1051 msgid "Group on signup" msgstr "Grupo al registrarse" -#: common/models.py:994 +#: common/models.py:1052 msgid "Group to which new users are assigned on registration" msgstr "Grupo al que se asignan nuevos usuarios al registrarse" -#: common/models.py:999 +#: common/models.py:1057 msgid "Enforce MFA" msgstr "Forzar MFA" -#: common/models.py:1000 +#: common/models.py:1058 msgid "Users must use multifactor security." msgstr "Los usuarios deben utilizar seguridad multifactor." -#: common/models.py:1007 +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 msgid "Enable URL integration" msgstr "Habilitar integración de URL" -#: common/models.py:1008 +#: common/models.py:1073 msgid "Enable plugins to add URL routes" msgstr "Habilitar plugins para añadir rutas de URL" -#: common/models.py:1014 +#: common/models.py:1079 msgid "Enable navigation integration" msgstr "Habilitar integración de navegación" -#: common/models.py:1015 +#: common/models.py:1080 msgid "Enable plugins to integrate into navigation" msgstr "Habilitar plugins para integrar en la navegación" -#: common/models.py:1021 +#: common/models.py:1086 msgid "Enable app integration" msgstr "Habilitar integración de la aplicación" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "Habilitar plugins para añadir aplicaciones" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "Habilitar integración de programación" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "Habilitar plugins para ejecutar tareas programadas" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "Habilitar integración de eventos" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "Habilitar plugins para responder a eventos internos" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "Mostrar partes suscritas" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "Mostrar las partes suscritas en la página principal" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "Mostrar categorías suscritas" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorías de partes suscritas en la página de inicio" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Mostrar últimas partes" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "Mostrar las últimas partes en la página de inicio" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "Conteo de Partes Recientes" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "Número de partes recientes a mostrar en la página de índice" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "Mostrar BOMs no validadas" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar BOMs que esperan validación en la página de inicio" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "Mostrar cambios recientes de stock" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "Conteo Reciente de Stock" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "Número de elementos de stock recientes a mostrar en la página de índice" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "Mostrar stock bajo" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "Mostrar stock agotado" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "Mostrar stock necesario" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar elementos de stock necesarios para trabajos en la página de inicio" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "Mostrar stock caducado" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "Mostrar stock obsoleto" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "Mostrar elementos de stock obsoletos en la página de inicio" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "Mostrar trabajos pendientes" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "Mostrar trabajos vencidos" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "Mostrar Órdenes de Compra Pendientes" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "Mostrar las OC destacadas en la página de inicio" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "Mostrar OC atrasadas" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "Mostrar las OC vencidas en la página de inicio" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "Mostrar OV pendiemtes" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar OV pendientes en la página de inicio" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "Mostrar OV atrasadas" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "Mostrar OV atrasadas en la página de inicio" -#: common/models.py:1192 -msgid "Inline label display" -msgstr "Mostrar etiqueta interior" - -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "Mostrar informe en línea" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "Resultados de la vista previa" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "Número de resultados a mostrar en la ventana de vista previa de búsqueda" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "Buscar Mostrar Stock" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "Mostrar niveles de stock en la ventana de vista previa de búsqueda" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "Ocultar Partes Inactivas" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "Ocultar partes inactivas en la ventana de vista previa de búsqueda" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "Mostrar cantidad en formularios" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "Mostrar la cantidad de piezas disponibles en algunos formularios" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "Formularios de cierre de teclas de escape" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "Usa la clave de escape para cerrar formularios modales" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "Barra de navegación fija" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "La posición de la barra de navegación de InvenTree se fija en la parte superior de la pantalla" - -#: common/models.py:1248 -msgid "Date Format" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "Mostrar etiqueta interior" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "Mostrar informe en línea" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "Resultados de la vista previa" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "Ocultar Partes Inactivas" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "Ocultar partes inactivas en la ventana de vista previa de búsqueda" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "Mostrar cantidad en formularios" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "Mostrar la cantidad de piezas disponibles en algunos formularios" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "Formularios de cierre de teclas de escape" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "Usa la clave de escape para cerrar formularios modales" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "Barra de navegación fija" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "Precio" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "Precio unitario a la cantidad especificada" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "Endpoint" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "Punto final en el que se recibe este webhook" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "Nombre para este webhook" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Activo" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "Token" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "Token para el acceso" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "Clave" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "Secreto compartido para HMAC" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "ID de mensaje" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "Identificador único para este mensaje" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "Host" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "Servidor desde el cual se recibió este mensaje" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "Encabezado" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "Encabezado del mensaje" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "Cuerpo" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "Cuerpo de este mensaje" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "Endpoint en el que se recibió este mensaje" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "Trabajado en" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "¿El trabajo en este mensaje ha terminado?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Subir Archivo" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Coincidir Campos" @@ -2409,7 +2519,7 @@ msgstr "Partes importadas" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Paso anterior" @@ -2477,7 +2587,7 @@ msgstr "Punto de contacto" msgid "Link to external company information" msgstr "Enlace a información externa de la empresa" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Imágen" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "¿Esta empresa fabrica piezas?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Moneda" @@ -2514,8 +2625,8 @@ msgstr "Moneda" msgid "Default currency used for this company" msgstr "Moneda predeterminada utilizada para esta empresa" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Parte base" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "Seleccionar pieza" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Fabricante" @@ -2538,11 +2649,11 @@ msgstr "Fabricante" msgid "Select manufacturer" msgstr "Seleccionar fabricante" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "MPN" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "Descripción de la parte del fabricante" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "Parte del fabricante" @@ -2571,8 +2682,8 @@ msgstr "Nombre del parámetro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "Valor" @@ -2580,10 +2691,10 @@ msgstr "Valor" msgid "Parameter value" msgstr "Valor del parámetro" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "Unidades" @@ -2599,11 +2710,11 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma pieza #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Proveedor" @@ -2613,7 +2724,7 @@ msgstr "Seleccionar proveedor" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "Descripción de la parte del proveedor" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Nota" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "costo base" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "Paquetes" @@ -2658,7 +2769,7 @@ msgstr "Paquetes" msgid "Part packaging" msgstr "Embalaje de partes" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "múltiple" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "Descargar desde URL" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Cliente" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "Teléfono" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "Cargar Imagen" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Partes de Proveedor" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Crear nueva parte del proveedor" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Nueva Parte de Proveedor" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "Opciones" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Piezas de pedido" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Eliminar partes" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Eliminar Partes" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Partes del fabricante" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Crear nueva pieza de fabricante" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "Nueva pieza de fabricante" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Stock del Proveedor" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Ordenes de compra" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Crear nueva orden de compra" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Nueva orden de compra" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "Órdenes de venta" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Crear Orden de Venta" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Nueva orden de venta" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "Stock asignado" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Notas de la empresa" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "¿Eliminar piezas de proveedor?" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "Se eliminarán todas las partes del proveedor seleccionadas" @@ -2872,83 +2985,83 @@ msgstr "Se eliminarán todas las partes del proveedor seleccionadas" msgid "Supplier List" msgstr "Listado de proveedores" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Fabricantes" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Pedir ítem" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "Editar fabricante de la pieza" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "Eliminar fabricante de la pieza" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "Componente interno" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Proveedores" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Eliminar partes del proveedor" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Eliminar" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parámetros" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Nuevo parámetro" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "Eliminar parámetro" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "Añadir parámetro" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "Los parámetros seleccionados serán eliminados" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "Eliminar parámetros" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "Elementos de Stock Asignados" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "Ítems de Proveedor" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "Stock del Proveedor" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Crear nuevo artículo de stock" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "Nuevo artículo de stock" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "Pedidos de piezas al proveedor" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Pedir ítem" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "Información de Precios" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "Agregar descuento de precio" @@ -3026,11 +3139,13 @@ msgstr "Agregar descuento de precio" msgid "No price break information found" msgstr "No se ha encontrado información de descuento de precios" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "Eliminar precio de descuento" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "Editar precio de descuento" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Inventario" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "Precio de pieza del proveedor" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Precios" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Elementos de stock" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Nuevo Fabricante" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Clientes" @@ -3100,7 +3218,7 @@ msgstr "Clientes" msgid "New Customer" msgstr "Nuevo Cliente" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Empresas" @@ -3108,24 +3226,24 @@ msgstr "Empresas" msgid "New Company" msgstr "Nueva Compañía" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Descargar imagen" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "El tamaño de la imagen excede el tamaño máximo permitido para descargar" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Respuesta no válida: {code}" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "No se han proporcionado objetos válidos a la plantilla" @@ -3349,9 +3467,9 @@ msgstr "Orden" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "Orden de compra" @@ -3361,8 +3479,8 @@ msgstr "Ítems de Proveedor" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "Recibido" @@ -3370,9 +3488,9 @@ msgstr "Recibido" msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "Precio de Compra" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "¿Dónde quiere el comprador almacenar este objeto?" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "Precio de Venta" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "Línea" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "Envío" @@ -3478,7 +3596,7 @@ msgstr "Envío" msgid "Sales order shipment reference" msgstr "Referencia del envío del pedido de venta" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "Ítem" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "Recibir artículos" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Recibir artículos" @@ -3700,9 +3818,9 @@ msgstr "Seleccionar Parte de Proveedor" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Eliminar fila" @@ -3718,7 +3836,7 @@ msgstr "Subir archivo para orden de compra" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Paso %(step)s de %(count)s" @@ -3796,27 +3914,27 @@ msgstr "Línea de pedido" msgid "Received Stock" msgstr "Stock Recibido" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Comprar artículos de orden" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Añadir artículo de línea" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "Recibir elementos seleccionados" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Articulos Recibidos" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Notas del pedido" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "Referencia del cliente" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Envíos completados" @@ -3866,21 +3984,21 @@ msgstr "Advertencia" msgid "Cancelling this order means that the order will no longer be editable." msgstr "Cancelar esta orden significa que la orden ya no será editable." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "Artículos de Pedidos de Venta" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Envíos pendientes" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "Acciones" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Nuevo Envío" @@ -3951,52 +4069,52 @@ msgstr "Actualizado el precio unitario de {part} a {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "Válido" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "Validación de Lista de Materiales" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "Esta opción debe ser seleccionada" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "Debe ser mayor que 0" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "Debe ser una cantidad válida" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "Especificar ubicación para el stock inicial de piezas" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "Este campo es obligatorio" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Ubicación Predeterminada" @@ -4004,12 +4122,14 @@ msgstr "Ubicación Predeterminada" msgid "Total Stock" msgstr "Inventario Total" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "Stock Disponible" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "En pedido" @@ -4041,14 +4161,14 @@ msgstr "Palabras clave predeterminadas" msgid "Default keywords for parts in this category" msgstr "Palabras clave por defecto para partes en esta categoría" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoría de parte" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Categorías de parte" @@ -4057,9 +4177,10 @@ msgstr "Categorías de parte" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Partes" @@ -4084,472 +4205,482 @@ msgstr "El siguiente número de serie disponible es" msgid "Most recent serial number is" msgstr "El número de serie más reciente es" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN duplicado no permitido en la configuración de partes" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "Nombre de la pieza" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "Es plantilla" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "¿Es esta parte una parte de la plantilla?" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "¿Es esta parte una variante de otra parte?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "Variante de" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "Descripción de la pieza" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Palabras claves" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "Categoría" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "Categoría de parte" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "IPN" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "Número de parte interna" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Revisión" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "¿Dónde se almacena este elemento normalmente?" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Proveedor por defecto" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "Parte de proveedor predeterminada" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "Expiración por defecto" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Stock mínimo" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "Nivel mínimo de stock permitido" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "Unidades de mantenimiento de stock para esta parte" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "¿Se puede construir esta pieza a partir de otras piezas?" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "¿Se puede utilizar esta pieza para construir otras partes?" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "¿Esta parte tiene seguimiento de objetos únicos?" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "¿Se puede comprar esta pieza a proveedores externos?" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "¿Se puede vender esta pieza a los clientes?" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "¿Está activa esta parte?" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "Notas de parte - soporta formato Markdown" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "BOM checksum" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "Suma de control BOM almacenada" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "BOM comprobado por" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "Fecha BOM comprobada" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "Creación de Usuario" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "Vender múltiples" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "Ya existe una prueba con este nombre para esta parte" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "Nombre de prueba" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "Introduzca un nombre para la prueba" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "Descripción de prueba" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "Introduce la descripción para esta prueba" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "Requerido" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "¿Es necesario pasar esta prueba?" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "Requiere valor" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "Adjunto obligatorio" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Carácter no válido en el nombre de la plantilla ({c})" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "El nombre de parámetro en la plantilla tiene que ser único" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "Nombre de Parámetro" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "Unidad del Parámetro" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Plantilla de parámetro" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "Data" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "Valor del parámetro" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Valor predeterminado" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "Valor de parámetro por defecto" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "ID de Parte" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "Seleccionar parte principal" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "Sub parte" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "Cantidad del artículo en BOM" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Opcional" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "Este elemento BOM es opcional" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Exceso" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "Referencia de artículo de BOM" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "Notas del artículo de BOM" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "Checksum" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "Suma de comprobación de la línea en BOM" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Heredado" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este artículo BOM es heredado por BOMs para partes variantes" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "Permitir variantes" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "La cantidad debe ser un valor entero para las partes rastreables" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "Debe especificar la subparte" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "Ítem de BOM sustituto" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sustituta no puede ser la misma que la parte principal" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "Artículo BOM superior" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "Sustituir parte" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "Seleccionar parte relacionada" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Error al crear relación: compruebe que la parte no está relacionada con sí misma y que la relación es única" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "Moneda de compra de ítem de stock" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "Seleccionar parte de la que copiar BOM" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "Eliminar Datos Existentes" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "Eliminar elementos BOM existentes antes de copiar" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "Incluye Heredado" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluye elementos BOM que son heredados de partes con plantillas" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "Omitir filas no válidas" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "Activar esta opción para omitir filas inválidas" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "Limpiar BOM Existente" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "Varios resultados encontrados" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "No se encontraron partes coincidentes" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "La parte no está designada como componente" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "Cantidad no proporcionada" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "Cantidad no válida" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "Se requiere al menos un elemento BOM" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "Notificación por bajo stock" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "No tienes permiso para editar la lista de materiales." @@ -4569,7 +4700,7 @@ msgstr "El BOM para %(part)s fue revisado por última vez por %(checker msgid "The BOM for %(part)s has not been validated." msgstr "El BOM para %(part)s no ha sido validada." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "Acciones BOM" @@ -4621,7 +4752,7 @@ msgstr "Ruta de Categoría" msgid "Top level part category" msgstr "Categoría de partes de nivel superior" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Subcategorías" @@ -4658,23 +4789,23 @@ msgstr "Exportar" msgid "Export Data" msgstr "Exportar Datos" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "Parámetros de Parte" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "Crear Categoría de Parte" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "Crear Parte" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "Importar Partes" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "Duplicar Parte" @@ -4738,150 +4869,150 @@ msgstr "La nueva parte puede ser un duplicado de estas partes existentes" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% coincidencia)" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Stock de parte" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Plantillas de prueba de parte" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Añadir Plantilla de Prueba" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "Asignaciones de órdenes de venta" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "Variantes de Parte" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "Crear nueva variante" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "Nueva Variante" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "Añadir nuevo parámetro" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Partes relacionadas" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "Añadir Relacionado" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Lista de Materiales" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "Exportar acciones" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Exportar BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "Imprimir informe BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "Subir BOM" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Copiar BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "Validar BOM" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "Nuevo Item en el BOM" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "Añadir artículo al BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "Ensamblajes" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "Construcción de partes" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "Construir adjudicaciones de pedidos" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "Proveedores de piezas" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "Fabricantes de piezas" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "Eliminar partes del fabricante" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "¿Eliminar elementos BOM seleccionados?" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "Todos los elementos BOM seleccionados serán eliminados" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "Crear artículo para el BOM" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "Partes relacionadas" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "Añadir artículos relacionados" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "Añadir plantilla de resultados de prueba" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Editar notas del artículo" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Precio de unidad de compra - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Diferencia entre precio y costo unitario - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Costo de Unidad de Proveedor - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "Precio unitario - %(currency)s" @@ -4947,234 +5078,217 @@ msgstr "Suscríbete a las notificaciones de este artículo" msgid "Barcode actions" msgstr "Acciones para código de barras" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostrar código QR" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Imprimir etiqueta" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "Mostrar información de precios" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Acciones de stock" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "Contar stock de piezas" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "Transferir stock de piezas" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "Acciones para piezas" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "Duplicar pieza" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "Editar pieza" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "Eliminar pieza" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "La pieza es una pieza de plantilla (las variantes se pueden hacer a partir de esta pieza)" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "La pieza puede ser ensamblada desde otras piezas" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "La pieza puede ser usada en ensamblajes" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "El stock de esta pieza está rastreado por número de serie" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "La pieza puede ser comprada de proveedores externos" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "La pieza puede ser vendida a clientes" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "La pieza es virtual (no una pieza física)" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "Inactivo" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "Mostrar Detalles de Parte" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "Esta parte es una variante de %(link)s" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "En Stock" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "Requerido para construir pedidos" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "Requerido para Pedidos de Venta" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "Puede construir" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "En construcción" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "Nivel mínimo de stock" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "Último Número Serial" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "Buscar número de serie" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "Calcular" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "No se encontraron imágenes coincidentes" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "Ocultar Detalles de la Parte" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "Precios del Proveedor" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "Coste Unitario" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "Costo Total" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "Ningún precio de proveedor disponible" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "Precios BOM" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "Precio de Compra Unitario" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "Precio total de compra" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "Nota: los precios BOM están incompletos para esta parte" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "No hay precios BOM disponibles" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "Precio Interno" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "No hay información de precios disponible para esta parte." -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Variantes" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Usado en" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "Plantillas de Prueba" @@ -5221,69 +5335,69 @@ msgstr "Hay %(count)s proveedores definidos para esta parte. Si la elimina, tamb msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "Hay %(count)s partes únicas registradas para '%(full_name)s'. Al eliminar esta parte se eliminará permanentemente esta información de seguimiento." -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "Rangos de precio" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "Mostrar coste del proveedor" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "Mostrar precio de compra" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "Mostrar coste de BOM" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "Mostrar coste de venta" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "Mostrar precio de venta" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "Parámetros de cálculo" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "Coste de Proveedor" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "Ir a la vista general" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "Precio de Stock" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "No hay historial de precios de stock disponible para esta parte." -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "Coste Interno" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "Añadir salto de precio interno" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "Coste BOM" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "Coste de Venta" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "No hay historial de precios de venta disponible para esta parte." @@ -5291,9 +5405,8 @@ msgstr "No hay historial de precios de venta disponible para esta parte." msgid "Set category for the following parts" msgstr "Establecer categoría para las siguientes partes" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "Sin Stock" @@ -5347,112 +5460,109 @@ msgstr "Crear nueva variante de pieza" msgid "Create a new variant of template '%(full_name)s'." msgstr "Crear una nueva variante de la plantilla '%(full_name)s'." -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "Base de datos desconocida" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "Definir Categoría de Parte" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "Establecer categoría para {n} partes" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "Coincidir Referencias" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "Ninguna" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "Código QR de Parte" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "Seleccionar Imagen de Parte" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "Imagen de parte actualizada" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "Imagen de parte no encontrada" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "Confirmar Eliminación de Parte" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "Parte fue eliminada" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "Precio de parte" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "Crear plantilla Parámetro de Parte" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "Crear plantilla Parámetro de Parte" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "Eliminar Plantilla de Parámetros de Parte" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "Editar Categoría de Parte" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "Eliminar Categoría de Parte" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "Categoría de parte eliminada" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "Crear plantilla de parámetro de categoría" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "Editar plantilla de parámetro de categoría" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "Eliminar plantilla de parámetro de categoría" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "Nuevo diferencial de precio añadido" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "Editar Diferencial de Precio Interno" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "Eliminar Diferencial de Precio Interno" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "No se encontró autor" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "No se encontró fecha" @@ -5480,7 +5590,7 @@ msgstr "Nombre del plugin" msgid "Is the plugin active" msgstr "Está activo el plugin" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "Plugin" @@ -5516,35 +5626,35 @@ msgstr "Configuración de Elección" msgid "A setting with multiple choices" msgstr "Un ajuste con múltiples opciones" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "URL de origen" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fuente del paquete - puede ser un registro personalizado o una ruta VCS" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "Nombre de Paquete" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nombre del paquete Plug-in - también puede contener un indicador de versión" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "Confirmar instalación del plugin" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Esto instalará este plug-in en la instancia actual. La instancia entrará en mantenimiento." -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "Instalación no confirmada" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "Debe proporcionar cualquier nombre de paquete de la URL" @@ -5646,12 +5756,12 @@ msgid "Stock Item Test Report" msgstr "Artículo Stock Informe de prueba" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Número de serie" @@ -5660,19 +5770,19 @@ msgid "Test Results" msgstr "Resultados de la Prueba" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "Prueba" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "Resultado" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "Fecha" @@ -5690,26 +5800,26 @@ msgid "Installed Items" msgstr "Elementos instalados" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "Serial" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "Cantidad requerida" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "Debe suministrarse una pieza válida" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "Fecha de Expiración" @@ -5749,228 +5859,232 @@ msgstr "Confirmar desinstalación" msgid "Confirm removal of installed stock items" msgstr "Confirmar la eliminación de los artículos de stock instalados" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "Propietario" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "Seleccionar Propietario" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "Ya existe un Stock con este número de serie" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Tipo de pieza ('{pf}') debe ser {pe}" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "La cantidad debe ser 1 para el artículo con un número de serie" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Número de serie no se puede establecer si la cantidad es mayor que 1" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "El objeto no puede pertenecer a sí mismo" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "El elemento debe tener una referencia de construcción si is_building=True" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "La referencia de la construcción no apunta al mismo objeto de parte" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "Artículo de stock padre" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "Parte base" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "Seleccione una parte del proveedor correspondiente para este artículo de stock" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicación de Stock" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "¿Dónde se encuentra este artículo de stock?" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "Empaquetar este elemento de stock se almacena en" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "Instalado en" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "¿Está este elemento instalado en otro elemento?" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "Número de serie para este elemento" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "Código de lote para este artículo de stock" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "Cantidad de Stock" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "Build de origen" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "Build para este item de stock" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "Orden de compra de origen" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "Orden de compra para este artículo de stock" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "Orden de venta de destino" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Fecha de caducidad del artículo de stock. El stock se considerará caducado después de esta fecha" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "Eliminar al agotar" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "Eliminar este artículo de stock cuando se agoten las existencias" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "Notas del artículo de stock" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "Precio de compra único en el momento de la compra" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "La parte no está establecida como rastreable" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "Cantidad debe ser un entero" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "La cantidad no debe exceder la cantidad disponible de existencias ({n})" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "Los números de serie deben ser una lista de enteros" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "La cantidad no coincide con los números de serie" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Los números de serie ya existen: {exists}" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "Artículo de stock ha sido asignado a un pedido de venta" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "Artículo de stock está instalado en otro artículo" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "Artículo de stock contiene otros artículos" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "Artículo de stock ha sido asignado a un cliente" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "El artículo de stock está en producción" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "Stock serializado no puede ser combinado" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "Artículos de Stock Duplicados" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "Los artículos de stock deben referirse a la misma parte" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "Los artículos de stock deben referirse a la misma parte del proveedor" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "Los códigos de estado del stock deben coincidir" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stock no se puede mover porque no está en stock" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "Notas de entrada" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "Debe proporcionarse un valor para esta prueba" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "El archivo adjunto debe ser subido para esta prueba" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "Nombre del test" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "Resultado de la prueba" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "Valor de salida de prueba" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "Adjunto de resultados de prueba" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "Notas de prueba" @@ -5978,10 +6092,6 @@ msgstr "Notas de prueba" msgid "Purchase price of this stock item" msgstr "Precio de compra de este artículo de stock" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "Moneda de compra de ítem de stock" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "Introduzca el número de elementos de stock para serializar" @@ -6007,7 +6117,7 @@ msgstr "Campo de nota opcional" msgid "Serial numbers cannot be assigned to this part" msgstr "Los números de serie no se pueden asignar a esta parte" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Números de serie ya existen" @@ -6083,11 +6193,11 @@ msgstr "Valor de clave primaria de Stock" msgid "Stock transaction notes" msgstr "Notas de transacción de stock" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Información de Seguimiento de Stock" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "Nueva Entrada" @@ -6104,7 +6214,7 @@ msgstr "Este artículo de stock no tiene ningún elemento secundario" msgid "Test Data" msgstr "Datos de Prueba" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "Informe de Prueba" @@ -6116,15 +6226,15 @@ msgstr "Eliminar Datos de Prueba" msgid "Add Test Data" msgstr "Añadir Datos de Prueba" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "Elementos de Stock instalados" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "Instalar elemento de stock" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "Añadir Resultado de Prueba" @@ -6142,180 +6252,180 @@ msgstr "Vincular Código de Barras" msgid "Scan to Location" msgstr "Escanear a la ubicación" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "Acciones de impresión" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "Acciones de ajuste de stock" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "Contar stock" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "Añadir stock" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "Eliminar stock" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "Serializar stock" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Transferir stock" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "Asignar a cliente" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "Regresar al stock" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "Desinstalar artículo de stock" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "Desinstalar" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "Instalar elemento de stock" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "Instalar" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "Convertir a variante" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "Duplicar artículo" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "Elemento de stock editado" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "Eliminar elemento de stock" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "página anterior" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "Navegar al número de serie anterior" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "página siguiente" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "Navegar al siguiente número de serie" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este ítem expiró el %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "Expirado" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Este ítem expira el %(item.expiry_date)s" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "Desactualizado" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "Última actualización" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "Último inventario" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "Ningún inventario realizado" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "Este artículo de stock está en producción y no puede ser editado." -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "Editar el elemento de stock desde la vista de construcción." -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "Este artículo de stock no ha pasado todas las pruebas requeridas" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "Este artículo de stock está asignado a la orden de venta" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "Este artículo de stock está asignado al orden de construcción" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Este artículo de stock está serializado - tiene un número de serie único y la cantidad no se puede ajustar." -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Ubicación no establecida" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "Identificador de Código de Barras" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "Elemento padre" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "Ningún fabricante establecido" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "Pruebas" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "No estás en la lista de propietarios de este artículo. Este artículo de stock no puede ser editado." -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "Editar Estado del Stock" @@ -6336,66 +6446,59 @@ msgstr "Crear artículos serializados a partir de este artículo de stock." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seleccione la cantidad para serializar y números de serie únicos." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "Objetos de Check-in" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "Acciones de ubicación" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Editar ubicación" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "Eliminar ubicación" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "Crear nueva ubicación de stock" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Nueva Ubicación" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "Ruta de Ubicación" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "Ubicación de stock superior" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "No estás en la lista de propietarios de esta ubicación. Esta ubicación de stock no puede ser editada." -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sub-ubicación" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "Ubicaciones de Stock" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "Acciones de impresión" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Imprimir Etiquetas" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "¿Está seguro que desea eliminar esta ubicación?" @@ -6469,11 +6572,11 @@ msgstr "Esta acción no se puede deshacer fácilmente" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "¿Está seguro que desea eliminar este elemento de stock?" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "Editar ubicación de stock" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "El propietario es requerido (el control de propiedad está habilitado)" @@ -6513,7 +6616,7 @@ msgstr "Código QR de Item de Stock" msgid "Uninstall Stock Items" msgstr "Desinstalar artículos de stock" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "Confirmar ajuste de stock" @@ -6521,71 +6624,72 @@ msgstr "Confirmar ajuste de stock" msgid "Uninstalled stock items" msgstr "Artículos de stock desinstalados" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "Editar artículo de stock" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Crear nueva ubicación de stock" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "Crear nuevo artículo de stock" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "Duplicar artículo de stock" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "La cantidad no puede ser negativa" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "Eliminar ubicación de stock" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "Eliminar elemento de stock" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "Eliminar registro de stock" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "Editar registro de stock" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "Añadir entrada de seguimiento de stock" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "Permiso Denegado" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "No tiene permisos para ver esta página." -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "Página No Encontrada" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "La página solicitada no existe" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "Error Interno Del Servidor" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" -msgstr "El servidor de InvenTree ha generado un error interno" - #: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "Consulte el registro de errores en la interfaz de administración para más detalles" @@ -6625,6 +6729,10 @@ msgstr "Actualizado Recientemente" msgid "Depleted Stock" msgstr "Stock Agotado" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "Requerido para construir pedidos" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "Stock Caducado" @@ -6657,6 +6765,70 @@ msgstr "Pedidos de Venta Pendientes" msgid "Overdue Sales Orders" msgstr "Pedidos de Venta Atrasados" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "Identificación" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "Mensaje" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "Resultados de Búsqueda" @@ -6702,7 +6874,7 @@ msgid "Server Settings" msgstr "Configuración del Servidor" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "Configuración de Inicio de Sesión" @@ -6711,7 +6883,7 @@ msgid "Signup" msgstr "Registrarse" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "Ajustes" @@ -6749,49 +6921,49 @@ msgid "Plugin Settings" msgstr "Ajustes del Plugin" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." -msgstr "Cambiar la configuración de abajo requiere reiniciar inmediatamente InvenTree. No lo cambie mientras esté en uso activo." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." +msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "Plugins" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "Instalar Plugin" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "Autor" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "Versión" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "Plugins inactivos" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "Pila de Error de Plugin" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "Etapa" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "Mensaje" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6826,8 +6998,8 @@ msgid "This plugin was installed as a package" msgstr "Este plugin fue instalado como un paquete" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" -msgstr "Este plugin fue encontrado en una ruta local de InvenTree" +msgid "This plugin was found in a local server path" +msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" @@ -6876,40 +7048,36 @@ msgstr "Ningún valor establecido" msgid "Edit setting" msgstr "Editar ajustes" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "Editar Configuración del Plugin" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "Editar Configuración Global" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "Editar Configuración de Usuario" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "No hay plantillas de parámetros de categoría" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" msgstr "Editar Plantilla" -#: templates/InvenTree/settings/settings.html:231 -#: templates/InvenTree/settings/settings.html:330 +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "Eliminar Plantilla" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "No se encontraron plantillas de parámetros de parte" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "Identificación" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6934,28 +7102,28 @@ msgstr "Página de Inicio" msgid "Search Settings" msgstr "Ajustes de Búsqueda" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "Impresión de etiquetas" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "Informando" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "Configuración Global" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "Configuración del Servidor" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "Monedas" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "Categorías" @@ -6974,7 +7142,8 @@ msgid "Change Password" msgstr "Cambiar Contraseña" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Editar" @@ -7185,8 +7354,8 @@ msgstr "¡Ayuda a los esfuerzos de traducción!" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "La traducción nativa de la aplicación web de InvenTree es un aporte de la comunidad a través de crowdin. Las contribuciones son bienvenidas y alentadas." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -7196,6 +7365,10 @@ msgstr "Ajustes de página de inicio" msgid "Label Settings" msgstr "Ajustes de Etiqueta" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "Información de la versión de InvenTree" @@ -7280,12 +7453,12 @@ msgstr "Confirme que %(email)s es una direcció msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "Este enlace de confirmación de correo electrónico ha caducado o no es válido. Por favor, envíe un nuevo correo electrónico de solicitud de confirmación." -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "Ingresar" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" @@ -7294,26 +7467,18 @@ msgstr "Por favor, inicia sesión con una\n" "de tus cuentas de terceros existentes o regístrate\n" " e inicia sesión a continuación:" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "Si aún no has creado una cuenta, por favor\n" "regístrate primero." -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "¿Ha olvidado la contraseña?" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "Instancia demo de InvenTree" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "Haga clic aquí para ver los detalles de acceso" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "o usar SSO" @@ -7454,15 +7619,15 @@ msgstr "Agregar Enlace" msgid "Add Attachment" msgstr "Añadir archivo adjunto" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "Reinicio del Servidor Requerido" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "Se ha cambiado una opción de configuración que requiere reiniciar el servidor" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "Póngase en contacto con su administrador para más información" @@ -7484,14 +7649,15 @@ msgid "The following parts are low on required stock" msgstr "Las siguientes partes están bajas en stock requerido" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "Cantidad requerida" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponible" @@ -7501,15 +7667,6 @@ msgstr "Disponible" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "Estás recibiendo este correo electrónico porque estás suscrito a las notificaciones de esta parte " -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "Versión de InvenTree" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr " El stock disponible para %(part)s ha caído por debajo del nivel mínimo configurado" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "Haga clic en el siguiente enlace para ver esta pieza" @@ -7534,67 +7691,67 @@ msgstr "Servidor remoto debe ser accesible" msgid "Remote image must not exceed maximum allowable file size" msgstr "La imagen remota no debe exceder el tamaño máximo permitido de archivo" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Sin Respuesta" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "No hay respuesta del servidor InvenTree" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Error 400: Solicitud incorrecta" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "La solicitud API devolvió el código de error 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Error 401: No autenticado" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Credenciales de autenticación no suministradas" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Error 403: Permiso Denegado" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "No tiene los permisos necesarios para acceder a esta función" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Error 404: Recurso No Encontrado" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "El recurso solicitado no se pudo encontrar en el servidor" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Error 405: Método no Permitido" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "Método HTTP no permitido en URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Error 408: Tiempo de espera agotado" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Tiempo de espera de conexión agotado al solicitar datos del servidor" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Código de error no controlado" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Código de error" @@ -7663,7 +7820,7 @@ msgstr "Respuesta del servidor inválida" msgid "Scan barcode data below" msgstr "Escanear datos de código de barras abajo" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "Escanear código de barras" @@ -7683,45 +7840,44 @@ msgstr "Esto eliminará la asociación entre este artículo de stock y el códig msgid "Unlink" msgstr "Desvincular" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "Eliminar elemento de stock" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Comprobar elementos de stock en ubicación" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Registrar" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Error al transferir stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Artículo de stock ya escaneado" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Artículo de stock ya está en esta ubicación" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Artículo de stock añadido" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "El código de barras no coincide con el artículo de stock" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Comprobar en la ubicación" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "El código de barras no coincide con una ubicación válida" @@ -7819,67 +7975,84 @@ msgstr "Añadir sustituto" msgid "Edit BOM Item Substitutes" msgstr "Editar sustitutos de elementos BOM" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "Sustitutos Disponibles" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "Stock de variante permitido" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "Abrir sub-ensamblaje" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "Sustitutos" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "Rango de Precio de Compra" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "Precio Promedio de Compra" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "Ver BOM" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "Validar Artículo para el BOM" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "Esta línea ha sido validada" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "Editar partes sustitutas" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "Editar Artículo de BOM" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "Eliminar Artículo de BOM" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "No se encontraron elementos BOM" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "¿Está seguro que desea eliminar este elemento BOM?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "Parte requerida" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "Heredado de BOM superior" @@ -7904,12 +8077,12 @@ msgid "Complete Build Order" msgstr "Completar Orden de Construcción" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "Siguiente número de serie disponible" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "Último número de serie" @@ -7989,141 +8162,149 @@ msgstr "Ubicación no especificada" msgid "No active build outputs found" msgstr "No se encontraron salidas de trabajo activas" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Editar asignación de stock" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Eliminar asignación de stock" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "Editar Asignación" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "Quitar asignación" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "Piezas sustitutas disponibles" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "Cantidad por" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Asignadas" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "Stock de Trabajo" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "Pedido de stock" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Asignar stock" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Seleccionar partes" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Debe seleccionar al menos una parte para asignar" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Seleccionar ubicación de origen (dejar en blanco para tomar de todas las ubicaciones)" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Confirmar asignación de stock" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "Asignar Artículos de Stock a Orden de Trabajo" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "No hay ubicaciones de stock coincidentes" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "No hay artículos de stock coincidentes" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "No hay trabajos que coincidan con la consulta" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "Seleccionar" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "Orden de trabajo atrasada" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "No hay información de usuario" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "Sin información" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "No se asignaron partes para" @@ -8188,34 +8369,34 @@ msgid "No manufacturer parts found" msgstr "No se encontraron partes del fabricante" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "Plantilla de parte" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "Parte ensamblada" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "No se encontraron parámetros" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "Editar parámetro" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "Eliminar parámetro" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "Editar parámetro" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "Eliminar parámetro" @@ -8295,7 +8476,7 @@ msgstr "Existen errores en el formulario" msgid "No results found" msgstr "No hay resultados" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "Buscando" @@ -8315,61 +8496,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "SI" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NO" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "Seleccionar elementos de stock" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "Elemento(s) de stock deben ser seleccionados antes de imprimir etiquetas" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "No se encontraron etiquetas" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "No se han encontrado etiquetas que coincidan con los artículos de stock seleccionado(s)" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "Seleccionar ubicaciones de stock" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "Las ubicación(es) del stock deben ser seleccionadas antes de imprimir etiquetas" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "No se encontraron etiquetas que coincidan con las ubicaciones de stock seleccionadas" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "Pieza(s) deben ser seleccionadas antes de imprimir etiquetas" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "No se encontraron etiquetas que coincidan con la(s) parte(s) seleccionada(s)" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "artículos de stock seleccionados" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "Seleccionar Etiqueta" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "Seleccione Plantilla de Etiqueta" @@ -8432,43 +8625,59 @@ msgstr "El servidor devolvió el código de error 400" msgid "Error requesting form data" msgstr "Error al solicitar datos del formulario" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "ID de Empresa" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "ID de Stock" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "ID de Ubicación" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "ID de construcción" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "ID del Pedido" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "ID de envío" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "ID de Categoría" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "ID de Parte del Fabricante" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "ID Parte del Proveedor" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "No se ha asignado ningún artículo de stock a este envío" @@ -8521,7 +8730,7 @@ msgstr "" msgid "Quantity to receive" msgstr "Cantidad a recibir" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "Estado del Stock" @@ -8545,7 +8754,7 @@ msgstr "Confirmar recepción de artículos" msgid "Receive Purchase Order Items" msgstr "Recibir artículos de orden de compra" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "No se encontraron órdenes de compra" @@ -8574,7 +8783,7 @@ msgid "Total" msgstr "Total" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "Precio Unitario" @@ -8583,11 +8792,11 @@ msgid "Total Price" msgstr "Precio Total" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "Recibir ítem de línea" @@ -8668,7 +8877,7 @@ msgid "Delete Stock Allocation" msgstr "Eliminar Adjudicación de Stock" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "Enviado al cliente" @@ -8788,169 +8997,177 @@ msgstr "Copiar datos del parámetro de la parte original" msgid "Parent part category" msgstr "Categoría superior de parte" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "Editar Parte" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "Parte editada" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "Crear Variante de Parte" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "Estás suscrito a las notificaciones de este elemento" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "Te has suscrito a las notificaciones de este elemento" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "Suscríbete a las notificaciones de este elemento" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "Has cancelado la suscripción a las notificaciones de este elemento" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "Validar el BOM marcará cada elemento de línea como válido" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "Validar la Factura de Materiales" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "Validación de Lista de Materiales" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "Copiar Factura de Materiales" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Parte Rastreable" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Parte virtual" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Parte suscrita" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Pieza vendible" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "No se encontraron variantes" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Eliminar relación de parte" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "Eliminar Relación de Parte" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "No se encontraron partes" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "Sin categoría" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "Stock bajo" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "Parte Rastreable" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "Parte virtual" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "Parte suscrita" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "Pieza vendible" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "No se encontraron variantes" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "Eliminar relación de parte" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "Eliminar Relación de Parte" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "No se encontraron partes" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Sin categoría" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "Mostrar como lista" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "Mostrar como cuadrícula" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "Mostrar como árbol" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "Categoría suscrita" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "Ruta" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "No hay plantillas de prueba que coincidan con la consulta" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "Editar resultado de prueba" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "Eliminar resultado de prueba" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "Esta prueba está definida para una parte principal" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "Editar plantilla de resultado de prueba" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "Eliminar plantilla de resultados de prueba" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "No se encontró información de ${human_name}" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "Editar ${human_name}" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "Eliminar ${human_name}" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "Precio Único" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "Diferencia de Precio Único" @@ -9024,6 +9241,14 @@ msgstr "Seleccionar Pedidos de Venta" msgid "Sales Order(s) must be selected before printing report" msgstr "Pedido(s) de venta debe ser seleccionado antes de imprimir el informe" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "Serializar Artículo de Stock" @@ -9036,344 +9261,328 @@ msgstr "Confirmar Serialización de Stock" msgid "Parent stock location" msgstr "Ubicación del stock principal" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "Nueva Ubicación de Stock" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "Esta parte no se puede serializar" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "Introduzca la cantidad inicial para este artículo de stock" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Introduzca números de serie para el nuevo stock (o deje en blanco)" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "Crear nuevo artículo de stock" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "Creados varios artículos de stock" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "Encontrar número serial" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "Introducir número de serie" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "Introducir un número de serie" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "Ningún número de serie coincidente" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "Más de un resultado encontrado" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "Confirmar asignación de stock" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "Asignar Stock al Cliente" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "Advertencia: La operación de fusión no puede ser revertida" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "Alguna información se perderá al combinar artículos de stock" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "Se eliminará el historial de transacciones de stock para elementos fusionados" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "La información de la pieza del proveedor se eliminará para los artículos fusionados" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "Confirmar fusión de artículos de stock" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "Fusionar Artículos de Stock" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "Transferir Stock" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "Mover" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "Contar Stock" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "Contar" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "Eliminar Stock" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "Tomar" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "Añadir Stock" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "Añadir" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "Eliminar Stock" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "La cantidad no se puede ajustar para el stock serializado" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "Especificar cantidad de stock" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "Debe seleccionar al menos un artículo de stock disponible" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "PASA" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "FALLO" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "SIN RESULTADO" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "Pruebas pasadas" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "Añadir resultado de prueba" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "No se encontraron resultados de prueba" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "Fecha de Prueba" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "Editar Resultados de Prueba" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "Borrar Resultado de Prueba" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "En producción" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "Instalado en el artículo de stock" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "Asignado a la Orden de Venta" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Ninguna ubicación de stock establecida" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "El artículo de stock está en producción" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "Artículo de stock asignado al pedido de venta" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "Artículo de stock asignado al cliente" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "Artículo de stock ha caducado" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "El artículo de stock caducará pronto" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "Se ha asignado un artículo de stock serializado" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "Artículo de stock ha sido completamente asignado" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "Artículo de stock ha sido asignado parcialmente" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "Artículo de stock ha sido instalado en otro artículo" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "Artículo de stock ha sido rechazado" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "Artículo de stock perdido" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "Artículo de stock destruido" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Agotado" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "Parte del proveedor no especificada" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "No hay artículos de stock que coincidan con la consulta" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "elementos" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "lotes" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "ubicaciones" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "Ubicación indefinida" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "Establecer estado de stock" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "Seleccionar Código de Estado" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "Debe seleccionar el código de estado" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "Detalles" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "Ubicación ya no existe" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "La orden de compra ya no existe" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "El cliente ya no existe" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "Artículo de stock ya no existe" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "Añadido" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "Eliminado" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "Editar entrada de rastreo" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "Eliminar entrada de rastreo" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "Ningún elemento instalado" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "Desinstalar elemento de stock" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Los artículos de stock sólo pueden ser instalados si cumplen con los siguientes criterios" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "El artículo de stock está serializado y no pertenece a otro artículo" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" +msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9404,12 +9613,12 @@ msgstr "Incluir ubicaciones" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "Incluir subcategorías" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "Suscrito" @@ -9446,12 +9655,12 @@ msgid "Serial number" msgstr "Número de serie" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "Código de lote" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "Partes activas" @@ -9520,64 +9729,88 @@ msgstr "Mostrar elementos que han sido asignados a un cliente" msgid "Stock status" msgstr "Estado del stock" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "Tiene precio de compra" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "Mostrar artículos de stock que tienen un precio de compra establecido" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "Mostrar artículos de stock que han caducado" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "Mostrar stock que está cerca de caducar" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "Estado de la construcción" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "Asignado a mí" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "Estado del pedido" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "Pendiente" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "Incluye partes en subcategorías" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "Tiene IPN" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "La parte tiene número de pieza interno" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "Mostrar partes activas" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Stock disponible" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "Comprable" @@ -9617,7 +9850,8 @@ msgstr "de" msgid "rows" msgstr "filas" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Buscar" @@ -9646,29 +9880,41 @@ msgstr "Columnas" msgid "All" msgstr "Todo" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Comprar" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Vender" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "Cerrar sesión" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "Iniciar sesión" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "Acerca de InvenTree" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "Modo demo de InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -9682,6 +9928,26 @@ msgstr "Se ha cerrado la sesión correctamente." msgid "Log in again" msgstr "Volver a ingresar" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "Servidor" @@ -9834,35 +10100,35 @@ msgstr "Permisos" msgid "Important dates" msgstr "Fechas importantes" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "Permiso establecido" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "Grupo" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "Vista" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "Permiso para ver elementos" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "Permiso para añadir elementos" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "Cambiar" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "Permisos para editar elementos" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "Permiso para eliminar elementos" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.mo b/InvenTree/locale/fa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..2c90dd0c81 Binary files /dev/null and b/InvenTree/locale/fa/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po new file mode 100644 index 0000000000..2da4694d5c --- /dev/null +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -0,0 +1,10129 @@ +#: templates/js/translated/order.js:2170 +msgid "" +msgstr "" +"Project-Id-Version: inventree\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" +"Last-Translator: \n" +"Language-Team: Persian\n" +"Language: fa_IR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: fa\n" +"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 138\n" + +#: InvenTree/api.py:57 +msgid "API endpoint not found" +msgstr "Address e API peida nashod" + +#: InvenTree/api.py:103 +msgid "No action specified" +msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" + +#: InvenTree/api.py:118 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +#: templates/js/translated/forms.js:601 +msgid "Confirm" +msgstr "تایید" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "تائید حذف" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:442 +#, python-brace-format +msgid "Duplicate serial: {sn}" +msgstr "" + +#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 +#: stock/views.py:993 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:452 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:474 InvenTree/helpers.py:477 InvenTree/helpers.py:480 +#: InvenTree/helpers.py:504 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:518 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "" + +#: InvenTree/helpers.py:524 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:528 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:185 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:186 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:197 stock/models.py:2202 +#: templates/js/translated/attachment.js:119 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:198 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:204 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:873 +#: report/templates/report/inventree_build_order_base.html:165 +#: templates/js/translated/company.js:540 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 +msgid "Link" +msgstr "" + +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:208 templates/js/translated/attachment.js:163 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:208 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2517 +msgid "User" +msgstr "" + +#: InvenTree/models.py:218 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:241 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:264 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:274 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:277 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:284 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:291 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:326 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:349 build/models.py:209 +#: build/templates/build/detail.html:24 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:77 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 +#: part/templates/part/set_category.html:14 report/models.py:194 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:94 +#: templates/InvenTree/settings/plugin_settings.html:33 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 +#: templates/js/translated/company.js:551 +#: templates/js/translated/company.js:840 templates/js/translated/order.js:971 +#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:350 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:358 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:65 part/models.py:2891 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:676 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:677 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:678 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:679 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:680 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:683 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:684 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:685 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:698 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:110 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:114 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:117 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:325 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 order/models.py:997 +#: templates/js/translated/order.js:2177 templates/js/translated/order.js:2474 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:278 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:284 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:287 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:290 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:296 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:305 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:306 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:883 templates/navbar.html:151 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:55 barcodes/api.py:156 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:132 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:134 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:159 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:166 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:205 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:211 barcodes/api.py:223 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:229 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +#: templates/js/translated/build.js:677 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:91 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:563 +#: order/models.py:843 part/models.py:2802 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 +#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:29 company/models.py:706 +#: order/models.py:912 order/models.py:986 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 +#: templates/js/translated/company.js:749 templates/js/translated/order.js:84 +#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 +#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 build/serializers.py:730 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 order/serializers.py:272 +#: stock/models.py:673 templates/js/translated/order.js:573 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:585 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +#: templates/js/translated/build.js:2138 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 templates/js/translated/build.js:2106 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:115 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 +#: report/templates/report/inventree_build_order_base.html:159 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:381 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:845 order/models.py:1107 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 +#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 +#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:750 +msgid "No build output specified" +msgstr "" + +#: build/models.py:753 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:756 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1171 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1180 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1190 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1196 order/models.py:1225 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1202 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1259 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 +msgid "Build" +msgstr "" + +#: build/models.py:1329 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 +#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:351 +#: templates/js/translated/build.js:688 templates/js/translated/build.js:693 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 +#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 +#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 +#: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1346 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1358 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:34 common/models.py:1442 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:836 order/models.py:1265 order/serializers.py:903 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 +#: templates/js/translated/build.js:376 templates/js/translated/build.js:524 +#: templates/js/translated/build.js:715 templates/js/translated/build.js:912 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 +#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 +#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 +#: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 +msgid "Quantity" +msgstr "" + +#: build/models.py:1359 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1367 +msgid "Install into" +msgstr "" + +#: build/models.py:1368 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:605 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:596 order/models.py:280 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 +#: stock/forms.py:78 stock/serializers.py:314 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:240 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:241 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:275 stock/api.py:591 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:328 build/serializers.py:393 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 +#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 +#: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 +msgid "Location" +msgstr "" + +#: build/serializers.py:371 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:377 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 +#: templates/js/translated/order.js:716 templates/js/translated/order.js:975 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 +msgid "Status" +msgstr "" + +#: build/serializers.py:434 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:435 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:445 templates/js/translated/build.js:151 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:450 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:451 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:461 templates/js/translated/build.js:155 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:470 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:473 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:511 +msgid "Build output" +msgstr "" + +#: build/serializers.py:520 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:567 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:582 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:638 order/serializers.py:834 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:644 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:651 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:679 order/serializers.py:1077 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:731 +msgid "Stock location where parts are to be sourced (leave blank to take from any location)" +msgstr "" + +#: build/serializers.py:739 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:740 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:745 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:746 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:751 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:752 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:131 order/models.py:849 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 +#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 +#: order/templates/order/sales_order_base.html:170 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:94 order/models.py:983 +#: order/models.py:1079 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:291 +#: templates/js/translated/order.js:1414 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:108 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 +#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 +#: templates/js/translated/table_filters.js:151 +#: templates/js/translated/table_filters.js:242 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:126 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +#: templates/js/translated/build.js:2098 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:137 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:146 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:172 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:179 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:186 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 +#: part/templates/part/category.html:174 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:199 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:203 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:210 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:229 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:233 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:234 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:248 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:252 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:255 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:256 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:312 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:548 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:549 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Outputs" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:381 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:383 +msgid "Settings value" +msgstr "" + +#: common/models.py:417 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:437 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:448 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:490 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:637 +msgid "No group" +msgstr "" + +#: common/models.py:679 +msgid "Restart required" +msgstr "" + +#: common/models.py:680 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" + +#: common/models.py:689 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:693 +msgid "Use instance name" +msgstr "" + +#: common/models.py:694 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:761 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:767 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:768 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:774 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:775 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:781 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:782 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:788 part/models.py:2598 report/models.py:187 +#: templates/js/translated/table_filters.js:38 +#: templates/js/translated/table_filters.js:444 +msgid "Template" +msgstr "" + +#: common/models.py:789 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 +#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:460 +msgid "Assembly" +msgstr "" + +#: common/models.py:796 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 +msgid "Component" +msgstr "" + +#: common/models.py:803 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:809 part/models.py:981 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:810 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 +msgid "Salable" +msgstr "" + +#: common/models.py:817 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:823 part/models.py:976 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:100 +#: templates/js/translated/table_filters.js:476 +msgid "Trackable" +msgstr "" + +#: common/models.py:824 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 +#: templates/js/translated/table_filters.js:42 +msgid "Virtual" +msgstr "" + +#: common/models.py:831 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:837 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:838 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:844 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:845 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:856 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:857 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:868 +msgid "Show Price History" +msgstr "" + +#: common/models.py:869 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:875 +msgid "Show related parts" +msgstr "" + +#: common/models.py:876 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:882 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:883 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:889 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:890 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:896 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:897 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:903 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:904 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:911 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:912 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:918 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:919 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:925 +msgid "Page Size" +msgstr "" + +#: common/models.py:926 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:936 +msgid "Test Reports" +msgstr "" + +#: common/models.py:937 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:943 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:949 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:950 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:956 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:957 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:963 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:964 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:966 +msgid "days" +msgstr "" + +#: common/models.py:971 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:972 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:978 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:985 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:986 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:991 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:996 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:997 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:1009 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1015 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1021 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1022 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" +msgstr "" + +#: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:1094 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1100 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1101 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1116 common/models.py:1402 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1147 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1148 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1153 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1154 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1159 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1160 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1165 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1166 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1172 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1173 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1178 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1179 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1184 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1185 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1190 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1191 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1196 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1197 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1202 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1203 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1208 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1209 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1214 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1215 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1220 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1221 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1226 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1227 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1232 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1233 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1238 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1239 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1244 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1245 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1250 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1251 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1257 +msgid "Enable email notifications" +msgstr "" + +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:1443 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1450 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 +msgid "Price" +msgstr "" + +#: common/models.py:1451 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1608 common/models.py:1747 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1609 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1618 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 +#: templates/js/translated/table_filters.js:34 +#: templates/js/translated/table_filters.js:96 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 +msgid "Active" +msgstr "" + +#: common/models.py:1624 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1638 +msgid "Token" +msgstr "" + +#: common/models.py:1639 +msgid "Token for access" +msgstr "" + +#: common/models.py:1646 +msgid "Secret" +msgstr "" + +#: common/models.py:1647 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1714 +msgid "Message ID" +msgstr "" + +#: common/models.py:1715 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1723 +msgid "Host" +msgstr "" + +#: common/models.py:1724 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1731 +msgid "Header" +msgstr "" + +#: common/models.py:1732 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1738 +msgid "Body" +msgstr "" + +#: common/models.py:1739 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1748 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1753 +msgid "Worked on" +msgstr "" + +#: common/models.py:1754 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 +#: templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: order/templates/order/order_wizard/po_upload.html:47 +#: part/templates/part/import_wizard/match_fields.html:27 +#: part/templates/part/import_wizard/match_references.html:19 +#: part/templates/part/import_wizard/part_upload.html:45 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +#: templates/js/translated/company.js:349 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:883 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:92 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:364 +#: templates/js/translated/company.js:333 +#: templates/js/translated/company.js:517 +#: templates/js/translated/company.js:800 templates/js/translated/part.js:235 +#: templates/js/translated/table_filters.js:411 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 templates/js/translated/part.js:236 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 +#: company/templates/company/supplier_part.html:105 +#: templates/js/translated/company.js:533 +#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 +msgid "MPN" +msgstr "" + +#: company/models.py:343 templates/js/translated/part.js:247 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 +#: templates/js/translated/company.js:337 +#: templates/js/translated/company.js:774 templates/js/translated/order.js:958 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 templates/js/translated/part.js:217 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 +msgid "SKU" +msgstr "" + +#: company/models.py:552 templates/js/translated/part.js:228 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1878 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/models.py:708 +msgid "last updated" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +#: templates/js/translated/order.js:279 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +#: templates/js/translated/company.js:265 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:574 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 +#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:465 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:14 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:18 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 +#: part/templates/part/category.html:174 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:106 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:116 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:120 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:36 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:41 +#: templates/js/translated/company.js:565 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:45 +#: templates/js/translated/company.js:566 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:67 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:115 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:144 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:159 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:240 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:252 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +#: templates/js/translated/company.js:863 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +#: templates/js/translated/company.js:864 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:81 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:10 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:298 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part.html:273 +msgid "Last updated" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:31 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:59 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 templates/js/translated/search.js:159 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:591 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:623 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:630 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:639 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:97 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:298 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:291 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:322 report/models.py:459 report/models.py:497 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:564 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:579 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +#: templates/js/translated/order.js:967 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:430 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:575 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:581 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:581 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:586 +msgid "Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:589 order/models.py:1084 +#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:596 +msgid "shipped by" +msgstr "" + +#: order/models.py:662 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:666 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:669 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:672 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:837 +msgid "Item quantity" +msgstr "" + +#: order/models.py:843 +msgid "Line item reference" +msgstr "" + +#: order/models.py:845 +msgid "Line item notes" +msgstr "" + +#: order/models.py:850 +msgid "Target shipping date for this line item" +msgstr "" + +#: order/models.py:878 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:891 order/models.py:982 order/models.py:1078 +#: templates/js/translated/order.js:2025 +msgid "Order" +msgstr "" + +#: order/models.py:892 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:77 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:913 +msgid "Supplier part" +msgstr "" + +#: order/models.py:920 order/templates/order/order_base.html:163 +#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 +msgid "Received" +msgstr "" + +#: order/models.py:921 +msgid "Number of items received" +msgstr "" + +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:929 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:937 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:992 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 +msgid "Sale Price" +msgstr "" + +#: order/models.py:993 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:998 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1085 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1092 +msgid "Checked By" +msgstr "" + +#: order/models.py:1093 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1101 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1108 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1115 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1116 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1126 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1129 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1207 order/models.py:1209 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1213 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1215 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1218 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1222 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1228 order/serializers.py:827 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1231 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1232 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1240 +msgid "Line" +msgstr "" + +#: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 +#: templates/js/translated/model_renderers.js:304 +msgid "Shipment" +msgstr "" + +#: order/models.py:1249 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 +msgid "Item" +msgstr "" + +#: order/models.py:1262 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1265 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:187 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:238 order/serializers.py:883 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:244 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:254 order/serializers.py:359 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:273 templates/js/translated/order.js:574 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:281 templates/js/translated/order.js:585 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:294 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:295 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:312 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:331 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:371 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:388 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:399 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:672 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:742 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:792 order/serializers.py:895 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:814 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:908 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:932 order/serializers.py:1057 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:935 order/serializers.py:1060 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:987 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:997 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "Cancelling this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 +#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:25 +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: part/templates/part/import_wizard/part_upload.html:23 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:55 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491 +#: templates/js/translated/order.js:1621 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:17 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:29 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:49 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +#: templates/js/translated/order.js:1449 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:77 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:17 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:43 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:56 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:509 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:529 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:547 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:579 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:659 +msgid "Valid" +msgstr "" + +#: part/api.py:660 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:665 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:1045 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:1049 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:1064 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:189 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:113 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:127 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:368 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:460 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:540 part/models.py:552 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:682 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:686 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:691 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:787 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:816 part/models.py:2695 +msgid "Part name" +msgstr "" + +#: part/models.py:823 +msgid "Is Template" +msgstr "" + +#: part/models.py:824 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:834 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:835 +msgid "Variant Of" +msgstr "" + +#: part/models.py:841 +msgid "Part description" +msgstr "" + +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 +msgid "Keywords" +msgstr "" + +#: part/models.py:847 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 +msgid "Category" +msgstr "" + +#: part/models.py:855 +msgid "Part category" +msgstr "" + +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 +msgid "IPN" +msgstr "" + +#: part/models.py:861 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:867 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 +msgid "Revision" +msgstr "" + +#: part/models.py:890 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:937 part/templates/part/part_base.html:339 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:938 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:945 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:946 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:951 part/templates/part/part_base.html:200 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:952 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:959 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:965 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:971 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:977 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:982 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:987 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:992 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:997 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:1002 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:1005 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1005 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1008 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1010 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1014 +msgid "Creation User" +msgstr "" + +#: part/models.py:1878 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2442 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2459 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 +msgid "Test Name" +msgstr "" + +#: part/models.py:2480 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2485 +msgid "Test Description" +msgstr "" + +#: part/models.py:2486 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 +msgid "Required" +msgstr "" + +#: part/models.py:2492 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2497 templates/js/translated/part.js:1843 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2498 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2503 templates/js/translated/part.js:1850 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2504 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2515 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2551 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2559 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2566 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2596 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2600 +msgid "Data" +msgstr "" + +#: part/models.py:2600 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 +msgid "Default Value" +msgstr "" + +#: part/models.py:2653 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2687 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 +msgid "Part ID" +msgstr "" + +#: part/models.py:2691 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2694 +msgid "Part Name" +msgstr "" + +#: part/models.py:2698 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2699 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2702 +msgid "Level" +msgstr "" + +#: part/models.py:2703 +msgid "BOM level" +msgstr "" + +#: part/models.py:2778 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2786 +msgid "Sub part" +msgstr "" + +#: part/models.py:2787 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2793 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 +#: templates/js/translated/table_filters.js:92 +msgid "Optional" +msgstr "" + +#: part/models.py:2795 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2798 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2799 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2802 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2805 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2807 +msgid "Checksum" +msgstr "" + +#: part/models.py:2807 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 +#: templates/js/translated/table_filters.js:68 +#: templates/js/translated/table_filters.js:88 +msgid "Inherited" +msgstr "" + +#: part/models.py:2812 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2818 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2903 stock/models.py:497 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2912 part/models.py:2914 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:3026 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:3048 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:3060 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:3068 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3079 +msgid "Part 1" +msgstr "" + +#: part/models.py:3083 +msgid "Part 2" +msgstr "" + +#: part/models.py:3083 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3115 +msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" +msgstr "" + +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:934 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:935 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:940 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:941 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:946 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:947 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:952 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:953 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:997 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:998 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:1025 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:1068 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:1071 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:1074 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:1083 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:1091 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:1110 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:18 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has changed, and must be validated.
          " +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:211 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:157 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:158 templates/js/translated/bom.js:365 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:176 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:201 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "" + +#: part/templates/part/category.html:333 +msgid "Part created successfully" +msgstr "" + +#: part/templates/part/category_delete.html:7 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: part/templates/part/category_delete.html:12 +#, python-format +msgid "This category contains %(n)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:14 +#, python-format +msgid "If this category is deleted, these child categories will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:16 +msgid "If this category is deleted, these child categories will be moved to the top level part category" +msgstr "" + +#: part/templates/part/category_delete.html:23 +#, python-format +msgid "This category contains %(n)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "If this category is deleted, these parts will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:27 +msgid "If this category is deleted, these parts will be moved to the top level part category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:52 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:57 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:155 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:156 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:183 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:250 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:256 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:266 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:268 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:273 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:274 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:287 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:305 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:348 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:376 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:392 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:595 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:596 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:645 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:689 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:697 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:794 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:927 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:939 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:951 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1040 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:53 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:34 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:36 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:55 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:67 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:73 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:88 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:91 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:143 +#: templates/js/translated/company.js:508 +#: templates/js/translated/company.js:765 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:177 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 +#: templates/js/translated/table_filters.js:193 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:215 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:287 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:316 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:486 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:567 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:137 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:11 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:27 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:46 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:50 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" +"
          Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:19 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:25 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:26 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:53 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:120 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:121 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:143 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:184 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:193 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:203 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:218 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:233 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:259 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:300 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:198 +msgid "Unknown database" +msgstr "" + +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:136 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:208 +msgid "Match References" +msgstr "" + +#: part/views.py:509 +msgid "None" +msgstr "" + +#: part/views.py:568 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:670 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:696 +msgid "Updated part image" +msgstr "" + +#: part/views.py:699 +msgid "Part image not found" +msgstr "" + +#: part/views.py:787 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:794 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:803 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:952 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:962 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:969 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1012 templates/js/translated/part.js:317 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1050 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1056 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1065 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1166 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1222 +msgid "Delete Category Parameter Template" +msgstr "" + +#: plugin/apps.py:52 +msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." +msgstr "" + +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:160 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:182 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:60 +msgid "This will install this plugin now into the current instance. The instance will go into maintenance." +msgstr "" + +#: plugin/serializers.py:75 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:77 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:234 report/api.py:278 +#, python-brace-format +msgid "Template file '{filename}' is missing or does not exist" +msgstr "" + +#: report/models.py:182 +msgid "Template name" +msgstr "" + +#: report/models.py:188 +msgid "Report template file" +msgstr "" + +#: report/models.py:195 +msgid "Report template description" +msgstr "" + +#: report/models.py:201 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:292 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:299 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:323 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:331 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:332 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:382 +msgid "Build Filters" +msgstr "" + +#: report/models.py:383 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:425 +msgid "Part Filters" +msgstr "" + +#: report/models.py:426 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:460 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:498 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 +#: templates/js/translated/build.js:374 templates/js/translated/build.js:522 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 +#: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:2183 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:2189 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:38 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 +msgid "Serial" +msgstr "" + +#: stock/api.py:543 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:550 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:575 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "Destination for serialized stock (by default, will remain in current location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 +msgid "Owner" +msgstr "" + +#: stock/models.py:94 stock/models.py:755 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:470 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:514 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:524 stock/models.py:533 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:525 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:547 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:553 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:560 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:603 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:612 +msgid "Base part" +msgstr "" + +#: stock/models.py:620 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:626 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:629 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:636 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:642 stock/templates/stock/item_base.html:282 +msgid "Installed In" +msgstr "" + +#: stock/models.py:645 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:661 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:675 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:680 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:689 +msgid "Source Build" +msgstr "" + +#: stock/models.py:691 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:702 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:705 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:711 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:718 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:731 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:731 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:741 stock/templates/stock/item.html:137 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:750 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1308 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1314 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1317 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1320 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1327 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1398 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1401 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1404 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1407 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1410 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1413 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1420 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1424 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1428 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1432 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1604 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2103 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2160 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2166 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2184 +msgid "Test name" +msgstr "" + +#: stock/models.py:2190 +msgid "Test result" +msgstr "" + +#: stock/models.py:2196 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2203 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2209 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1019 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:22 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:74 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:82 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:91 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:99 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:103 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:152 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +#: templates/js/translated/barcode.js:330 +#: templates/js/translated/barcode.js:335 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:54 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:70 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:83 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:118 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:211 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:215 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:224 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:225 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:238 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:246 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:254 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:260 +msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:350 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:393 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:486 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:40 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:68 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:81 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:82 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:107 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:113 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:117 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:8 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/location_delete.html:13 +#, python-format +msgid "This location contains %(n)s child locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:15 +#, python-format +msgid "If this location is deleted, these child locations will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:17 +msgid "If this location is deleted, these child locations will be moved to the top level stock location" +msgstr "" + +#: stock/templates/stock/location_delete.html:25 +#, python-format +msgid "This location contains %(n)s stock items" +msgstr "" + +#: stock/templates/stock/location_delete.html:27 +#, python-format +msgid "If this location is deleted, these stock items will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:29 +msgid "If this location is deleted, these stock items will be moved to the top level stock location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:152 templates/js/translated/stock.js:138 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:274 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:293 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:302 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:313 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:324 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:341 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:342 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:357 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:382 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:479 templates/js/translated/stock.js:1046 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:490 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:512 templates/js/translated/stock.js:343 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:672 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:773 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:915 templates/js/translated/stock.js:323 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:997 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1097 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1110 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1121 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1128 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1137 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:6 templates/403.html:12 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:15 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:6 templates/404.html:12 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:15 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:6 templates/500.html:12 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:31 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:34 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:39 +#: templates/js/translated/plugin.js:15 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:122 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:131 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local server path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:37 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:42 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:116 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:118 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:120 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:209 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:310 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:27 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:37 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:48 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:56 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:65 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:90 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:103 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:104 +#, python-format +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 +#: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 +#: templates/js/translated/modals.js:53 templates/js/translated/modals.js:584 +#: templates/js/translated/modals.js:678 templates/js/translated/modals.js:986 +#: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 +#: templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "Please confirm that %(email)s is an email address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:22 +#, python-format +msgid "Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:26 +#, python-format +msgid "If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:46 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:52 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:100 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:103 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:103 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +#: templates/js/translated/bom.js:1378 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 +#: templates/js/translated/table_filters.js:178 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:197 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:198 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:217 +msgid "Error 405: Method Not Allowed" +msgstr "" + +#: templates/js/translated/api.js:218 +msgid "HTTP method not allowed at URL" +msgstr "" + +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:226 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:227 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:78 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:100 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:110 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:111 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:167 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:183 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:190 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:29 +msgid "Scan barcode data here using wedge scanner" +msgstr "" + +#: templates/js/translated/barcode.js:31 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:35 +msgid "Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:53 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:54 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:92 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:113 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:140 +#: templates/js/translated/modals.js:1046 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:233 +msgid "Scan barcode data below" +msgstr "" + +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:291 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:309 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:332 +msgid "This will remove the association between this stock item and the barcode" +msgstr "" + +#: templates/js/translated/barcode.js:338 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:445 +msgid "Check Stock Items into Location" +msgstr "" + +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" + +#: templates/js/translated/barcode.js:515 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:519 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:526 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:533 +msgid "Barcode does not match Stock Item" +msgstr "" + +#: templates/js/translated/barcode.js:576 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:639 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:75 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:131 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:249 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 +#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53 +msgid "Format" +msgstr "" + +#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 +#: templates/js/translated/order.js:430 +msgid "Select file format" +msgstr "" + +#: templates/js/translated/bom.js:294 +msgid "Cascading" +msgstr "" + +#: templates/js/translated/bom.js:295 +msgid "Download cascading / multi-level BOM" +msgstr "" + +#: templates/js/translated/bom.js:300 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:301 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:307 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:308 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:313 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:314 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:319 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:320 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:325 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:326 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:509 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:565 +msgid "Select and add a new substitute part using the input below" +msgstr "" + +#: templates/js/translated/bom.js:576 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:582 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:621 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:622 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:755 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:764 +msgid "Open subassembly" +msgstr "" + +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:871 +msgid "Purchase Price Range" +msgstr "" + +#: templates/js/translated/bom.js:878 +msgid "Purchase Price Average" +msgstr "" + +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:989 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:991 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:993 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:1159 +msgid "Are you sure you want to delete this BOM item?" +msgstr "" + +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/bom.js:1383 +msgid "Inherited from parent BOM" +msgstr "" + +#: templates/js/translated/build.js:86 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:120 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:141 +msgid "Build order is ready to be completed" +msgstr "" + +#: templates/js/translated/build.js:146 +msgid "Build Order is incomplete" +msgstr "" + +#: templates/js/translated/build.js:174 +msgid "Complete Build Order" +msgstr "" + +#: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 +#: templates/js/translated/stock.js:180 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 +#: templates/js/translated/stock.js:182 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:227 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:236 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:243 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:274 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:285 +msgid "Unallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:294 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:302 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:325 +msgid "Are you sure you wish to unallocate stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:343 +msgid "Unallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:361 templates/js/translated/build.js:509 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:362 templates/js/translated/build.js:510 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:416 templates/js/translated/build.js:564 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:432 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:577 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:666 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:704 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:886 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 +#: templates/js/translated/order.js:2179 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 +#: templates/js/translated/order.js:2180 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1385 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:1395 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:1420 +msgid "Substitute parts available" +msgstr "" + +#: templates/js/translated/build.js:1437 +msgid "Quantity Per" +msgstr "" + +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 +msgid "Allocated" +msgstr "" + +#: templates/js/translated/build.js:1508 +msgid "loading" +msgstr "" + +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 +#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1722 +msgid "All Parts Allocated" +msgstr "" + +#: templates/js/translated/build.js:1723 +msgid "All selected parts have been fully allocated" +msgstr "" + +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1767 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:1947 +msgid "Automatic Stock Allocation" +msgstr "" + +#: templates/js/translated/build.js:1948 +msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" +msgstr "" + +#: templates/js/translated/build.js:1950 +msgid "If a location is specifed, stock will only be allocated from that location" +msgstr "" + +#: templates/js/translated/build.js:1951 +msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" +msgstr "" + +#: templates/js/translated/build.js:1952 +msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" +msgstr "" + +#: templates/js/translated/build.js:1973 +msgid "Allocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:2011 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:2048 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:2124 +msgid "No information" +msgstr "" + +#: templates/js/translated/build.js:2181 +msgid "No parts allocated for" +msgstr "" + +#: templates/js/translated/company.js:65 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:78 templates/js/translated/company.js:177 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:99 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:108 +msgid "Delete Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:165 templates/js/translated/order.js:248 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:193 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:208 +msgid "Edit Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:218 +msgid "Delete Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:286 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:363 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:372 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:387 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:406 +msgid "The following manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:423 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:480 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:504 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:737 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:441 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:442 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:204 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:288 +msgid "Download data" +msgstr "" + +#: templates/js/translated/filters.js:291 +msgid "Reload data" +msgstr "" + +#: templates/js/translated/filters.js:295 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:298 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:350 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:353 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:368 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:382 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:396 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:627 +msgid "Keep this form open" +msgstr "" + +#: templates/js/translated/forms.js:702 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1194 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:1623 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:1833 templates/search.html:29 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:2082 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/forms.js:2547 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:2547 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:2559 +msgid "Select Columns" +msgstr "" + +#: templates/js/translated/helpers.js:20 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:22 +msgid "NO" +msgstr "" + +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/label.js:61 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:80 +msgid "No labels found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/label.js:115 +msgid "Select Stock Locations" +msgstr "" + +#: templates/js/translated/label.js:116 +msgid "Stock location(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:134 +msgid "No labels found which match selected stock location(s)" +msgstr "" + +#: templates/js/translated/label.js:173 +msgid "Part(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:192 +msgid "No labels found which match the selected part(s)" +msgstr "" + +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 +msgid "stock items selected" +msgstr "" + +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 +msgid "Select Label Template" +msgstr "" + +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 +#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:118 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:392 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:551 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:609 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:666 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:937 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:949 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1046 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1061 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1062 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1085 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/model_renderers.js:60 +msgid "Company ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:123 +msgid "Stock ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:149 +msgid "Location ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:166 +msgid "Build ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 +msgid "Order ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:306 +msgid "Shipment ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:326 +msgid "Category ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:369 +msgid "Manufacturer Part ID" +msgstr "" + +#: templates/js/translated/model_renderers.js:398 +msgid "Supplier Part ID" +msgstr "" + +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + +#: templates/js/translated/order.js:75 +msgid "No stock items have been allocated to this shipment" +msgstr "" + +#: templates/js/translated/order.js:80 +msgid "The following stock items will be shipped" +msgstr "" + +#: templates/js/translated/order.js:120 +msgid "Complete Shipment" +msgstr "" + +#: templates/js/translated/order.js:126 +msgid "Confirm Shipment" +msgstr "" + +#: templates/js/translated/order.js:181 +msgid "Create New Shipment" +msgstr "" + +#: templates/js/translated/order.js:206 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/order.js:231 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/order.js:426 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:520 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/order.js:521 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/order.js:541 templates/js/translated/order.js:640 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/order.js:547 templates/js/translated/order.js:651 +msgid "Add serial numbers" +msgstr "" + +#: templates/js/translated/order.js:559 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/order.js:712 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/order.js:713 +msgid "Ordered" +msgstr "" + +#: templates/js/translated/order.js:715 +msgid "Quantity to Receive" +msgstr "" + +#: templates/js/translated/order.js:734 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/order.js:735 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2577 +msgid "Duplicate Line Item" +msgstr "" + +#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2599 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2610 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/order.js:1160 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2335 +msgid "Total" +msgstr "" + +#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 +msgid "Unit Price" +msgstr "" + +#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2376 +msgid "Total Price" +msgstr "" + +#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 +#: templates/js/translated/part.js:974 +msgid "This line item is overdue" +msgstr "" + +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2532 +msgid "Duplicate line item" +msgstr "" + +#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2533 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2537 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:1402 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/order.js:1440 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/order.js:1527 +msgid "Edit shipment" +msgstr "" + +#: templates/js/translated/order.js:1530 +msgid "Complete shipment" +msgstr "" + +#: templates/js/translated/order.js:1535 +msgid "Delete shipment" +msgstr "" + +#: templates/js/translated/order.js:1555 +msgid "Edit Shipment" +msgstr "" + +#: templates/js/translated/order.js:1572 +msgid "Delete Shipment" +msgstr "" + +#: templates/js/translated/order.js:1606 +msgid "No matching shipments found" +msgstr "" + +#: templates/js/translated/order.js:1616 +msgid "Shipment Reference" +msgstr "" + +#: templates/js/translated/order.js:1640 +msgid "Not shipped" +msgstr "" + +#: templates/js/translated/order.js:1646 +msgid "Tracking" +msgstr "" + +#: templates/js/translated/order.js:1806 +msgid "Allocate Stock Items to Sales Order" +msgstr "" + +#: templates/js/translated/order.js:2014 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/order.js:2095 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:2112 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:2113 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 +#: templates/js/translated/stock.js:1544 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2254 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/order.js:2516 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/order.js:2522 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/order.js:2529 templates/js/translated/order.js:2719 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/order.js:2541 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/order.js:2544 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/order.js:2625 +msgid "Allocate Serial Numbers" +msgstr "" + +#: templates/js/translated/order.js:2727 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/order.js:2741 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/part.js:55 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:59 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:63 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:67 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:81 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:166 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:174 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:181 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:199 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:208 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:209 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:265 +msgid "Copy Image" +msgstr "" + +#: templates/js/translated/part.js:266 +msgid "Copy image from original part" +msgstr "" + +#: templates/js/translated/part.js:274 +msgid "Copy bill of materials from original part" +msgstr "" + +#: templates/js/translated/part.js:281 +msgid "Copy Parameters" +msgstr "" + +#: templates/js/translated/part.js:282 +msgid "Copy parameter data from original part" +msgstr "" + +#: templates/js/translated/part.js:295 +msgid "Parent part category" +msgstr "" + +#: templates/js/translated/part.js:340 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:342 +msgid "Part edited" +msgstr "" + +#: templates/js/translated/part.js:353 +msgid "Create Part Variant" +msgstr "" + +#: templates/js/translated/part.js:423 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:425 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:430 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:432 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:449 +msgid "Validating the BOM will mark each line item as valid" +msgstr "" + +#: templates/js/translated/part.js:459 +msgid "Validate Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:462 +msgid "Validated Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:487 +msgid "Copy Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:1515 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:1754 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 +msgid "Path" +msgstr "" + +#: templates/js/translated/part.js:1812 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/part.js:1870 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:1892 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1906 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1931 +#, python-brace-format +msgid "No ${human_name} information found" +msgstr "" + +#: templates/js/translated/part.js:1988 +#, python-brace-format +msgid "Edit ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:1989 +#, python-brace-format +msgid "Delete ${human_name}" +msgstr "" + +#: templates/js/translated/part.js:2103 +msgid "Current Stock" +msgstr "" + +#: templates/js/translated/part.js:2136 +msgid "No scheduling information available for this part" +msgstr "" + +#: templates/js/translated/part.js:2162 +msgid "Scheduled Stock Quantities" +msgstr "" + +#: templates/js/translated/part.js:2232 +msgid "Single Price" +msgstr "" + +#: templates/js/translated/part.js:2251 +msgid "Single Price Difference" +msgstr "" + +#: templates/js/translated/plugin.js:22 +msgid "The Plugin was installed" +msgstr "" + +#: templates/js/translated/report.js:67 +msgid "items selected" +msgstr "" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "" + +#: templates/js/translated/report.js:119 +msgid "Stock item(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:136 templates/js/translated/report.js:189 +#: templates/js/translated/report.js:243 templates/js/translated/report.js:297 +#: templates/js/translated/report.js:351 +msgid "No Reports Found" +msgstr "" + +#: templates/js/translated/report.js:137 +msgid "No report templates found which match selected stock item(s)" +msgstr "" + +#: templates/js/translated/report.js:172 +msgid "Select Builds" +msgstr "" + +#: templates/js/translated/report.js:173 +msgid "Build(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:190 +msgid "No report templates found which match selected build(s)" +msgstr "" + +#: templates/js/translated/report.js:226 +msgid "Part(s) must be selected before printing reports" +msgstr "" + +#: templates/js/translated/report.js:244 +msgid "No report templates found which match selected part(s)" +msgstr "" + +#: templates/js/translated/report.js:279 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/translated/report.js:280 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/report.js:298 templates/js/translated/report.js:352 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/translated/report.js:333 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/translated/report.js:334 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + +#: templates/js/translated/stock.js:72 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:100 +msgid "Confirm Stock Serialization" +msgstr "" + +#: templates/js/translated/stock.js:109 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:153 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:193 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:232 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:238 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:303 +msgid "Stock item duplicated" +msgstr "" + +#: templates/js/translated/stock.js:393 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:406 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:431 +msgid "Find Serial Number" +msgstr "" + +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 +msgid "Enter serial number" +msgstr "" + +#: templates/js/translated/stock.js:452 +msgid "Enter a serial number" +msgstr "" + +#: templates/js/translated/stock.js:472 +msgid "No matching serial number" +msgstr "" + +#: templates/js/translated/stock.js:481 +msgid "More than one matching result found" +msgstr "" + +#: templates/js/translated/stock.js:604 +msgid "Confirm stock assignment" +msgstr "" + +#: templates/js/translated/stock.js:605 +msgid "Assign Stock to Customer" +msgstr "" + +#: templates/js/translated/stock.js:682 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:683 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:685 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:686 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:772 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:773 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:868 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:869 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:875 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:876 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:880 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:881 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:885 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:886 users/models.py:214 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:890 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:983 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:983 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:1023 +msgid "You must select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:1181 +msgid "PASS" +msgstr "" + +#: templates/js/translated/stock.js:1183 +msgid "FAIL" +msgstr "" + +#: templates/js/translated/stock.js:1188 +msgid "NO RESULT" +msgstr "" + +#: templates/js/translated/stock.js:1235 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1238 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:1264 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:1320 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:1485 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1507 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1536 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:1540 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:1548 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:1554 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1712 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:1717 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:1720 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:1724 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:1726 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:1732 +msgid "Serialized stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:1734 +msgid "Stock item has been fully allocated" +msgstr "" + +#: templates/js/translated/stock.js:1736 +msgid "Stock item has been partially allocated" +msgstr "" + +#: templates/js/translated/stock.js:1741 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:1748 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:1750 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:1752 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:1756 +#: templates/js/translated/table_filters.js:188 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:1807 +msgid "Stocktake" +msgstr "" + +#: templates/js/translated/stock.js:1889 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:1927 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:2099 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:2113 +msgid "Select Status Code" +msgstr "" + +#: templates/js/translated/stock.js:2114 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/translated/stock.js:2369 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2426 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2445 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2463 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2486 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:2494 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:2570 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:2621 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2657 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:2658 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:2660 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:2661 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 +msgid "Select part to install" +msgstr "" + +#: templates/js/translated/table_filters.js:56 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:60 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:64 +msgid "Validated" +msgstr "" + +#: templates/js/translated/table_filters.js:72 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:110 +#: templates/js/translated/table_filters.js:183 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:111 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:429 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:126 +#: templates/js/translated/table_filters.js:468 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:136 +#: templates/js/translated/table_filters.js:218 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:225 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:140 +#: templates/js/translated/table_filters.js:226 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:229 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:230 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:147 +#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/table_filters.js:221 +#: templates/js/translated/table_filters.js:222 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:152 +#: templates/js/translated/table_filters.js:243 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:401 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:164 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:169 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:173 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:174 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:179 +msgid "Stock is available for use" +msgstr "" + +#: templates/js/translated/table_filters.js:184 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:189 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:194 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:198 +msgid "In Production" +msgstr "" + +#: templates/js/translated/table_filters.js:199 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:203 +msgid "Include Variants" +msgstr "" + +#: templates/js/translated/table_filters.js:204 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:208 +msgid "Installed" +msgstr "" + +#: templates/js/translated/table_filters.js:209 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:214 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:234 +#: templates/js/translated/table_filters.js:235 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:253 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:262 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:268 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 +msgid "Assigned to me" +msgstr "" + +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 +msgid "Outstanding" +msgstr "" + +#: templates/js/translated/table_filters.js:430 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:434 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:435 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:440 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "" + +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/tables.js:50 +msgid "Export Table Data" +msgstr "" + +#: templates/js/translated/tables.js:54 +msgid "Select File Format" +msgstr "" + +#: templates/js/translated/tables.js:433 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:436 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:441 +msgid "Showing all rows" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:443 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 +#: templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/js/translated/tables.js:450 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:453 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:456 +msgid "Refresh" +msgstr "" + +#: templates/js/translated/tables.js:459 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:462 +msgid "Columns" +msgstr "" + +#: templates/js/translated/tables.js:465 +msgid "All" +msgstr "" + +#: templates/navbar.html:44 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:56 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:141 +msgid "Login" +msgstr "" + +#: templates/navbar.html:162 +msgid "About InvenTree" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:17 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:33 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:40 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:45 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:46 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:47 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete stock" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:201 +msgid "Permission set" +msgstr "" + +#: users/models.py:209 +msgid "Group" +msgstr "" + +#: users/models.py:212 +msgid "View" +msgstr "" + +#: users/models.py:212 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:214 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:216 +msgid "Change" +msgstr "" + +#: users/models.py:216 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:218 +msgid "Permission to delete items" +msgstr "" + diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index e19bbc87da..a7123a4792 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "Point de terminaison de l'API introuvable" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Aucune action spécifiée" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Aucune action correspondante trouvée" @@ -83,10 +83,10 @@ msgstr "Vous devez taper le même e-mail à chaque fois." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Dupliquer le numéro : {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" @@ -122,7 +122,7 @@ msgstr "Fichier manquant" msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Pièce jointe" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Lien" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -152,11 +152,12 @@ msgstr "Commentaire" msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Utilisateur" @@ -193,42 +194,42 @@ msgstr "Erreur lors du renommage du fichier" msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Nom" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Description" @@ -240,7 +241,7 @@ msgstr "Description (facultative)" msgid "parent" msgstr "parent" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Doit être un nombre valide" @@ -254,127 +255,139 @@ msgstr "Valeur non valide" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Fichier de données" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Sélectionnez le fichier de données à envoyer" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Format de fichier non supporté" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Fichier trop volumineux" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Pas de colonnes trouvées dans le fichier" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Par de lignes de données trouvées dans le fichier" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Pas de lignes de données fournies" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Pas de colonne de données fournie" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Colonne requise manquante : {name}" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" +msgstr "Colonne duliquée : '{col}'" + +#: InvenTree/settings.py:675 +msgid "Czech" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:676 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Greek" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spanish" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Français" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebrew" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "Hongrois" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italian" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japanese" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Korean" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Dutch" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norwegian" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portugais" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Russian" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Swedish" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Thai" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamese" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Chinese" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "Échec des contrôles de santé du système" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "En attente" @@ -399,14 +412,14 @@ msgstr "En attente" msgid "Placed" msgstr "Placé" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Terminé" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Annulé" @@ -445,91 +458,95 @@ msgstr "Détruit" msgid "Rejected" msgstr "Rejeté" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Ancienne entrée de suivi de stock" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Article en stock créé" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Article de stock modifié" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Numéro de série attribué" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Stock comptabilisé" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Stock ajouté manuellement" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Stock supprimé manuellement" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Emplacement modifié" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Installé dans l'assemblage" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Retiré de l'assemblage" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Composant installé" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Composant retiré" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Séparer de l'élément parent" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "Articles de stock fusionnés" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Envoyé au client" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Retourné par le client" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "La sortie de l'ordre de construction a été créée" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Sortie de l'ordre de construction terminée" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" -msgstr "" +msgstr "Consommé par ordre de construction" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Reçu contre bon de commande" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Fabrication" @@ -567,7 +584,7 @@ msgstr "Le surplus ne doit pas dépasser 100%" #: InvenTree/validators.py:162 msgid "Invalid value for overage" -msgstr "" +msgstr "Valeur invalide pour le dépassement" #: InvenTree/views.py:538 msgid "Delete Item" @@ -589,7 +606,7 @@ msgstr "Définir le mot de passe" msgid "Password fields must match" msgstr "Les mots de passe doivent correspondre" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Informations système" @@ -654,11 +671,11 @@ msgstr "Ordre de Fabrication" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Ordres de Fabrication" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Référence" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Brève description de la fabrication" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Fabrication parente" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "BuildOrder associé a cette fabrication" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Pièce" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Emplacement d'origine" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Code de statut de construction" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Code de lot" @@ -783,8 +801,8 @@ msgstr "Code de lot" msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Date de création" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Date d'achèvement" @@ -805,7 +823,7 @@ msgstr "Date d'achèvement" msgid "completed by" msgstr "achevé par" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Émis par" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Responsable" @@ -826,11 +844,11 @@ msgstr "Responsable" msgid "User responsible for this build order" msgstr "Utilisateur responsable de cette commande de construction" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Lien Externe" @@ -839,17 +857,17 @@ msgstr "Lien Externe" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Notes" @@ -869,69 +887,69 @@ msgstr "L'ordre de production a déjà été réalisé" msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Assemblage" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Construction à laquelle allouer des pièces" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Stock d'origine de l'article" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Quantité" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Stock de destination de l'article" @@ -998,23 +1016,23 @@ msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" #: build/serializers.py:208 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "Quantité entière requise pour les pièces à suivre" #: build/serializers.py:211 msgid "Integer quantity required, as the bill of materials contains trackable parts" -msgstr "" +msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Numéros de série" @@ -1024,15 +1042,15 @@ msgstr "Entrer les numéros de séries pour la fabrication" #: build/serializers.py:240 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "Allouer automatiquement les numéros de série" #: build/serializers.py:241 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" -msgstr "" +msgstr "Le numéro de série suivant existe déjà" #: build/serializers.py:328 build/serializers.py:393 msgid "A list of build outputs must be provided" @@ -1040,15 +1058,15 @@ msgstr "Une liste d'ordre de production doit être fourni" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Emplacement" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "État" @@ -1098,8 +1116,8 @@ msgstr "L'ordre de production a des sorties incomplètes" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Date Cible" @@ -1250,33 +1268,33 @@ msgstr "Cette construction était due le %(target)s" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "En retard" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Terminé" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Commandes" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Émis par" @@ -1294,184 +1312,188 @@ msgstr "L'ordre de fabrication ne peut pas être achevé car il reste des output msgid "Are you sure you wish to cancel this build?" msgstr "Êtes-vous sûr de vouloir annuler cette construction?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Détails de la construction" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Stock d'origine" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destination" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Stockage de destination non défini" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Pièces allouées" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Créé le" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Pas de date cible définie" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Désallouer le stock" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Désallouer le stock" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Allouer le stock" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Commander les pièces requises" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Commander des pièces" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Le stock non suivi a été entièrement alloué pour cet ordre de construction" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Du stock non suivi n'a pas été entièrement alloué pour cet ordre de construction" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Allouer les éléments sélectionnés" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Cet ordre de construction n'a aucun objet de BOM non suivi associé" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Actions d'impression" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Pieces jointes" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Notes de construction" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Modifier les notes" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Allocation terminée" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "Nouvel ordre de construction" @@ -1544,849 +1566,937 @@ msgstr "{name.title()} Fichier" msgid "Select {name} file to upload" msgstr "Sélectionner le fichier {name} à uploader" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Valeur du paramètre" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "La valeur choisie n'est pas une option valide" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "La valeur doit être une valeur booléenne" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "La valeur doit être un nombre entier" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "La chaîne de caractères constituant la clé doit être unique" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "Pas de groupe" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "Redémarrage nécessaire" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "Nom de l'instance InvenTree" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "Chaîne de caractères descriptive pour l'instance serveur" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "Utiliser le nom de l'instance" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "Utiliser le nom de l’instance dans la barre de titre" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Nom de la société" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "Nom de société interne" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "URL de base" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "URL de base pour l'instance serveur" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Devise par défaut" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Devises par défaut" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Télécharger depuis l'URL" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Support des code-barres" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Activer le support du scanner de code-barres" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "Copier les données des paramètres de la pièce" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "Copier les données de test de la pièce" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "Copier les données de test par défaut lors de la duplication d'une pièce" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "Copier les templates de paramètres de catégorie" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Template" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" -msgstr "" +msgstr "Les composantes peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Composant" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" -msgstr "" +msgstr "Les composantes peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Achetable" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Vendable" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Traçable" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Les pièces sont virtuelles par défaut" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "Afficher l'import dans les vues" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "Afficher l'assistant d'importation pour certaine vues de produits" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Afficher le prix dans les formulaires" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "Afficher le prix de la pièce dans certains formulaires" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "Afficher le prix dans la BOM" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "Inclure les informations de prix dans les tableaux de la BOM" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" -msgstr "" +msgstr "Historique des prix" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "Créer un stock initial" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "Créer le stock initial lors de la création d'une pièce" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Rapports de test" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "jours" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" -msgstr "Préfixe des commandes d'achats" - -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" -msgstr "Activer les mots de passe oubliés" +#: common/models.py:949 +msgid "Stock Expiry" +msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:950 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "Activer les inscriptions" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" -msgstr "Activer le SSO" +msgid "Stock Stale Time" +msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" -msgstr "Activer le SSO sur les pages de connexion" - -#: common/models.py:969 -msgid "Email required" -msgstr "Email requis" - -#: common/models.py:970 -msgid "Require user to supply mail on signup" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" -msgstr "Saisie automatique des utilisateurs SSO" +#: common/models.py:966 +msgid "days" +msgstr "jours" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:981 -msgid "Mail twice" -msgstr "Courriel en double" - -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" -msgstr "" +#: common/models.py:997 +msgid "Prefix value for sales order reference" +msgstr "Valeur préfixe référence commande client" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" +msgstr "Préfixe des commandes d'achats" + +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" +msgstr "Valeur préfixe référence bon de commande" + +#: common/models.py:1009 +msgid "Enable password forgot" +msgstr "Activer les mots de passe oubliés" + +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "Activer les inscriptions" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 +msgid "Enable SSO" +msgstr "Activer le SSO" + +#: common/models.py:1022 +msgid "Enable SSO on the login pages" +msgstr "Activer le SSO sur les pages de connexion" + +#: common/models.py:1027 +msgid "Email required" +msgstr "Email requis" + +#: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "Saisie automatique des utilisateurs SSO" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "Courriel en double" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "Format préféré pour l'affichage des dates" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" -msgstr "" +msgstr "Prix" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Actif" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2401,7 +2511,7 @@ msgstr "" #: common/views.py:495 msgid "Parts imported" -msgstr "" +msgstr "Composantes importées" #: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 @@ -2409,9 +2519,9 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" -msgstr "" +msgstr "Étape précédente" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 @@ -2477,7 +2587,7 @@ msgstr "Point de contact" msgid "Link to external company information" msgstr "Lien externe vers les informations de l'entreprise" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Image" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Cette entreprise fabrique-t-elle des pièces?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Devise" @@ -2514,8 +2625,8 @@ msgstr "Devise" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Fabricant" @@ -2538,11 +2649,11 @@ msgstr "Fabricant" msgid "Select manufacturer" msgstr "Sélectionner un fabricant" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "Valeur" @@ -2580,10 +2691,10 @@ msgstr "Valeur" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Fournisseur" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "coût de base" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,13 +2769,13 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" #: company/models.py:584 msgid "Order multiple" -msgstr "" +msgstr "Commande multiple" #: company/models.py:708 msgid "last updated" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "Télécharger l'image depuis l'URL" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" +msgstr "Commander des composants" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" msgstr "" #: company/templates/company/detail.html:42 #: company/templates/company/detail.html:89 -msgid "Delete parts" -msgstr "" - -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Commandes d'achat" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Créer une commande d'achat" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Nouvelle commande achat" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "Ventes" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Nouvelle commande de vente" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "Stock affecté" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "Liste des Fournisseurs" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Fabricants" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "Pièces Internes" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Fournisseurs" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Supprimer les pièces du fournisseur" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Supprimer" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paramètres" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Nouveau paramètre" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" -msgstr "" +msgstr "Commander un composant" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" -msgstr "" +msgstr "Information sur les prix" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Stock" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Tarif" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Éléments en stock" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Nouveau Fabricant" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Clients" @@ -3100,7 +3218,7 @@ msgstr "Clients" msgid "New Customer" msgstr "Nouveaux Clients" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Entreprises" @@ -3108,26 +3226,26 @@ msgstr "Entreprises" msgid "New Company" msgstr "Nouvelle Entreprise" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" -msgstr "" +msgstr "Aucun objet valide n'a été fourni au modèle" #: label/models.py:113 msgid "Label name" @@ -3225,7 +3343,7 @@ msgstr "" #: order/models.py:147 msgid "Order notes" -msgstr "" +msgstr "Notes de commande" #: order/models.py:214 order/models.py:564 msgid "Order reference" @@ -3349,9 +3467,9 @@ msgstr "Commande" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "Commande d’achat" @@ -3361,8 +3479,8 @@ msgstr "Pièce fournisseur" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "Reçu" @@ -3370,9 +3488,9 @@ msgstr "Reçu" msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "Prix d'achat" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "Prix de vente" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "Ligne" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "Article" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3619,12 +3737,12 @@ msgstr "Finaliser la commande" #: order/templates/order/order_base.html:84 #: order/templates/order/sales_order_base.html:79 msgid "Order Reference" -msgstr "" +msgstr "Référence de commande" #: order/templates/order/order_base.html:89 #: order/templates/order/sales_order_base.html:84 msgid "Order Description" -msgstr "" +msgstr "Description de la commande" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Supprimer la ligne" @@ -3718,14 +3836,14 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" #: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." -msgstr "" +msgstr "Commande déjà traitée. Les fichiers ne peuvent pas être chargés." #: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" @@ -3796,29 +3914,29 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Articles de la commande d'achat" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" -msgstr "" +msgstr "Notes de commande" #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:33 @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" -msgstr "" +msgstr "Expéditions en attente" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,14 +4122,16 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" -msgstr "" +msgstr "En Commande" #: part/forms.py:84 msgid "Select part category" @@ -4041,27 +4161,28 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "Catégorie de composant" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" -msgstr "" +msgstr "Catégories de composants" #: part/models.py:368 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:17 part/templates/part/category.html:133 #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" -msgstr "" +msgstr "Composantes" #: part/models.py:460 msgid "Invalid choice for parent part" @@ -4084,472 +4205,482 @@ msgstr "Le prochain numéro de série disponible est" msgid "Most recent serial number is" msgstr "Le numéro de série le plus récent est" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" -msgstr "" +msgstr "Description du composant" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "Catégorie" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "IPN" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Révision" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "Requis" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "Données" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" -msgstr "" +msgstr "ID de composant" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" -msgstr "" +msgstr "Surplus" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "Devise d'achat de l'item" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,14 +4752,14 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" #: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Composantes (incluant sous-catégories)" #: part/templates/part/category.html:157 msgid "Create new part" @@ -4658,25 +4789,25 @@ msgstr "Exporter" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" -msgstr "" +msgstr "Composant créé avec succès" #: part/templates/part/category_delete.html:7 msgid "Are you sure you want to delete this part category?" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4726,7 +4857,7 @@ msgstr "" #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "Composantes correspondantes possibles" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" -msgstr "" +msgstr "Fabricants de composants" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4931,7 +5062,7 @@ msgstr "" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "Liste des composants" #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 msgid "You are subscribed to notifications for this part" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" -msgstr "" +msgstr "Impression étiquette" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "Modifier la pièce" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "La pièce en stock est tracée par un numéro de série" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "Dernier numéro de série" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "Rechercher un numéro de série" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "Calculer" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "Prix d’achat unitaire" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "Tester le modèle" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" -msgstr "" +msgstr "Gammes de prix" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "Afficher le prix de vente" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "Aller à la vue d'ensemble" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" -msgstr "" +msgstr "Aucun" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5472,13 +5582,13 @@ msgstr "" #: plugin/models.py:41 msgid "PluginName of the plugin" -msgstr "" +msgstr "Non du Plugin" #: plugin/models.py:47 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5500,7 +5610,7 @@ msgstr "" #: plugin/samples/integration/sample.py:52 msgid "Numerical" -msgstr "" +msgstr "Numérique" #: plugin/samples/integration/sample.py:53 msgid "A numerical setting" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5597,7 +5707,7 @@ msgstr "" #: report/models.py:425 msgid "Part Filters" -msgstr "" +msgstr "Filtres de composants" #: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Numéro de série" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" -msgstr "" +msgstr "Résultat" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "Il existe déjà un article en stock avec ce numéro de série" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "Les numéros de série doivent être une liste de nombres entiers" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Les numéros de série existent déja : {exists}" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "Entrez le nombre d'articles en stock à sérialiser" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" -msgstr "" +msgstr "page précédente" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "Accéder au numéro de série précédent" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "Accéder au numéro de série suivant" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée." -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "Sélectionner la quantité à sérialiser et les numéros de série uniques." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,13 +6570,13 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" -msgstr "" +msgstr "Propriétaire requis (contrôle de propriété actif)" #: stock/views.py:274 msgid "Stock Location QR code" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" -msgstr "" +msgstr "Autorisation refusée" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "Notifications en attente" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "Aucune notification non lue trouvée" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,8 +6996,8 @@ msgid "This plugin was installed as a package" msgstr "Ce plugin a été installé en tant que paquet" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" -msgstr "Ce plugin a été trouvé dans un chemin local d'InvenTree" +msgid "This plugin was found in a local server path" +msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" @@ -6868,46 +7040,42 @@ msgstr "" #: templates/InvenTree/settings/setting.html:37 msgid "No value set" -msgstr "" +msgstr "Aucune valeur définie" #: templates/InvenTree/settings/setting.html:42 msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" -msgstr "" +msgstr "Rapports" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7002,7 +7171,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:79 msgid "Primary" -msgstr "" +msgstr "Principal" #: templates/InvenTree/settings/user.html:85 msgid "Make Primary" @@ -7134,7 +7303,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:37 msgid "Select theme" -msgstr "" +msgstr "Sélectionner un thème" #: templates/InvenTree/settings/user_display.html:48 msgid "Set Theme" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "Paramètres de notification" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "Ajouter un lien" msgid "Add Attachment" msgstr "Ajouter une pièce jointe" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "Redémarrage du serveur nécessaire" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "Une option de configuration a été modifiée, ce qui nécessite un redémarrage du serveur" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "Contactez votre administrateur système pour plus d'informations" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" -msgstr "" +msgstr "Quantité requise" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponible" @@ -7496,15 +7662,6 @@ msgstr "Disponible" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "Le serveur distant doit être accessible" msgid "Remote image must not exceed maximum allowable file size" msgstr "L'image distante ne doit pas excéder la taille maximale autorisée de fichier" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Aucune réponse" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "Aucune réponse du serveur InvenTree" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Erreur 400: Mauvaise requête" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "La requête de l'API a retourné le code d'erreur 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Erreur 401: non authentifié" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Informations d’authentification non fournies" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Erreur 403: Permission refusée" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Vous n'avez pas les autorisations requises pour accéder à cette fonction" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Erreur 404: Ressource introuvable" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "La ressource demandée n'a pas pu être trouvée sur le serveur" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Erreur 405: Méthode non autorisée" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "Méthode HTTP non autorisée à l'adresse URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Erreur 408: Délai dépassé" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Délai de connexion dépassé lors de la demande de données depuis le serveur" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Code d'erreur non géré" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Code d’erreur" @@ -7658,7 +7815,7 @@ msgstr "Réponse du serveur invalide" msgid "Scan barcode data below" msgstr "Scanner les données du code-barres ci-dessous" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "Scanner le code-barres" @@ -7678,45 +7835,44 @@ msgstr "Ceci supprimera l'association entre cet article de stock et le code-barr msgid "Unlink" msgstr "Délier" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "Supprimer l'article de stock" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Vérifier les articles de stock dans l'emplacement" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Erreur lors du transfert de stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Article de stock déjà scanné" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Article de stock déjà à cet emplacement" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Article de stock ajouté" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "Le code-barres ne correspond pas à l'article de stock" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Vérifier dans l'emplacement" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Le code-barres ne correspond pas à un emplacement valide" @@ -7726,7 +7882,7 @@ msgstr "" #: templates/js/translated/bom.js:131 msgid "Row Data" -msgstr "" +msgstr "Données de la rangée" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "Prochain numéro de série disponible" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "Dernier numéro de série" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" -msgstr "" +msgstr "Commander des stocks" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" -msgstr "" +msgstr "Pas d'informations sur l'utilisateur" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8160,11 +8341,11 @@ msgstr "" #: templates/js/translated/company.js:363 msgid "Parts Supplied" -msgstr "" +msgstr "Composantes fournies" #: templates/js/translated/company.js:372 msgid "Parts Manufactured" -msgstr "" +msgstr "Composantes fabriquées" #: templates/js/translated/company.js:387 msgid "No company information found" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "Sélectionner imprimante" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" -msgstr "" +msgstr "ID de commande" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,17 +8725,17 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" #: templates/js/translated/order.js:712 msgid "Order Code" -msgstr "" +msgstr "Référence de commande" #: templates/js/translated/order.js:713 msgid "Ordered" -msgstr "" +msgstr "Commandé" #: templates/js/translated/order.js:715 msgid "Quantity to Receive" @@ -8540,13 +8749,13 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" #: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 msgid "Order is overdue" -msgstr "" +msgstr "Commande en retard" #: templates/js/translated/order.js:1074 templates/js/translated/order.js:2577 msgid "Duplicate Line Item" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "Livré au client" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "Modifier la pièce" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "Pièce modifiée" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "Créer une variante de pièce" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Pièce traçable" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Pièce virtuelle" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Pièce vendable" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "Aucune pièce trouvée" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "Aucune catégorie" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "Stock bas" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "Pièce traçable" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "Pièce virtuelle" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "Pièce vendable" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Aucune variante trouvée" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "Aucune pièce trouvée" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Aucune catégorie" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "Afficher sous forme de liste" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "Afficher sous forme de grille" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "Afficher sous forme d'arborescence" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "Chemin d'accès" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "Modifier le résultat du test" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "Supprimer le résultat du test" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "Trouver un numéro de série" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "Entrer le numéro de série" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "Entrer un numéro de série" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "Aucun numéro de série correspondant" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "Plus d'un résultat correspondant trouvé" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "Confirmer l'assignation de stock" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "Assigner le stock au client" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "Attention : l'opération de fusion est irréversible" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "Certaines informations seront perdues lors de la fusion des articles en stock" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "L'historique des transactions de stock sera supprimé pour les éléments fusionnés" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "Les informations sur la pièce du fournisseur seront supprimées pour les éléments fusionnés" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "Confirmer la fusion de l'article en stock" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "Fusionner les articles en stock" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "Transférer le stock" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "Transférer" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "Compter le stock" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "Compter" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "Supprimer du stock" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "Supprimer" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "Ajouter du stock" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "Ajouter" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "Supprimer le stock" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "La quantité ne peut pas être ajustée pour un stock sérialisé" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "Spécifiez la quantité du stock" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "Vous devez sélectionner au moins un article en stock disponible" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "RÉUSSI" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "ÉCHEC" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "AUCUN RÉSULTAT" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "Ajouter un résultat de test" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "Aucun résultat de test trouvé" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "Date du test" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "En production" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "Article en stock installé dans un autre article en stock" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "Assigné à une commande de vente" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Aucun emplacement de stock défini" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "L'article de stock est en production" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "L'article en stock a été assigné à une commande de vente" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "L'article en stock a été assigné à un client" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "L'article en stock a expiré" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "L'article en stock va bientôt expirer" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "L'article de stock sérialisé a été alloué" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "L'article de stock a été complètement alloué" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "L'article de stock a été partiellement alloué" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "L'article en stock a été installé dans un autre article" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "L'article de stock a été rejeté" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "L'article de stock est perdu" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "L'article de stock est détruit" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Epuisé" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "Prise d'inventaire" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "Pièce de fournisseur non précisée" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "Aucun article de stock ne correspond à la requête" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "articles" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "lots" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "emplacements" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "Emplacement indéfini" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "Définir l'état du stock" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "Sélectionner le code de statut" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "Le code de statut doit être sélectionné" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "Détails" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "L'emplacement n'existe plus" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "La commande d'achat n'existe plus" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "Le client n'existe plus" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "L'article de stock n'existe plus" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "Ajouté" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "Supprimé" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "Inclure les emplacements" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "Inclure les sous-catégories" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "Numéro de série" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "Code de lot" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "Pièces actives" @@ -9515,64 +9724,88 @@ msgstr "Afficher les articles qui ont été assignés à un client" msgid "Stock status" msgstr "État du stock" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "A un prix d'achat" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "Afficher les articles de stock qui ont un prix d'achat défini" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "Afficher les articles de stock qui ont expiré" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "Afficher le stock qui est proche de l'expiration" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "État de la construction" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "Assigné à moi" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "État de la commande" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "En suspens" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "Inclure les pièces des sous-catégories" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "A un IPN" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "La pièce a un numéro de pièce interne" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "Afficher les pièces actives" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Stock disponible" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "Achetable" @@ -9612,7 +9845,8 @@ msgstr "de" msgid "rows" msgstr "lignes" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Rechercher" @@ -9641,29 +9875,41 @@ msgstr "Colonnes" msgid "All" msgstr "Tout" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Acheter" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Ventes" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "Se déconnecter" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "Se connecter" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "À propos d'InvenTree" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "Mode démo de InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -9677,6 +9923,26 @@ msgstr "Vous avez été déconnecté avec succès." msgid "Log in again" msgstr "Se reconnecter" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "Serveur" @@ -9747,7 +10013,7 @@ msgstr "" #: templates/stock_table.html:33 msgid "Print test reports" -msgstr "" +msgstr "Imprimer un rapport de test" #: templates/stock_table.html:40 msgid "Stock Options" @@ -9829,35 +10095,35 @@ msgstr "Droits" msgid "Important dates" msgstr "Dates importantes" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "Droit défini" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "Groupe" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "Vue" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "Droit de voir des éléments" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "Droit d'ajouter des éléments" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "Modifier" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "Droit de modifier des élément" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 324fa45a28..25db434e85 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "לא פורטה הפעולה" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "קובץ חסר" msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "קובץ מצורף" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "בחר קובץ לצירוף" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "קישור" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "קישור חיצוני" @@ -152,11 +152,12 @@ msgstr "הערה" msgid "File comment" msgstr "הערת קובץ" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "משתמש" @@ -193,42 +194,42 @@ msgstr "שגיאה בשינוי שם פריט" msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "שם" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "תיאור" @@ -240,7 +241,7 @@ msgstr "תיאור (לא חובה)" msgid "parent" msgstr "מקור" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:676 msgid "German" msgstr "גרמנית" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "יוונית" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "אנגלית" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "צרפתית" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "עברית" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "איטלקית" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "יפנית" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "פולנית" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "פורטוגזית" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "רוסית" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "שוודית" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "טורקית" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "סינית" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "בהמתנה" @@ -399,14 +412,14 @@ msgstr "בהמתנה" msgid "Placed" msgstr "מוקם" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "הושלם" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "מבוטל" @@ -445,91 +458,95 @@ msgstr "הרוס" msgid "Rejected" msgstr "נדחה" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "מיקום שונה" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "נשלח ללקוח" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "הוחזר מלקוח" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "ייצור" @@ -589,7 +606,7 @@ msgstr "הגדר סיסמא" msgid "Password fields must match" msgstr "הסיסמאות מוכרחות להיות תואמות" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "מידע אודות המערכת" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "מקט" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "תיאור קצר אודות הבנייה" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "מקור הבנייה" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "רכיב" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "כמות" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "מספרים סידוריים" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index dc542a9cf3..f83bbf9e6f 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API funkciót nem találom" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Nincs megadva művelet" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Nincs egyező művelet" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "Duplikált sorozatszám: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" @@ -122,7 +122,7 @@ msgstr "Hiányzó fájl" msgid "Missing external link" msgstr "Hiányzó külső link" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Melléklet" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Link" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Link külső URL-re" @@ -150,13 +150,14 @@ msgstr "Megjegyzés" #: InvenTree/models.py:208 msgid "File comment" -msgstr "Fájl megjegyzés" +msgstr "Leírás, bővebb infó" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Felhasználó" @@ -193,42 +194,42 @@ msgstr "Hiba a fájl átnevezésekor" msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Név" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Leírás" @@ -240,7 +241,7 @@ msgstr "Leírás (opcionális)" msgid "parent" msgstr "szülő" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" @@ -294,87 +295,99 @@ msgstr "Szükséges oszlop hiányzik: '{name}'" msgid "Duplicate column: '{col}'" msgstr "Duplikált oszlop: '{col}'" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "Cseh" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Német" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Görög" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Angol" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Spanyol (Mexikói)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "Fárszi/Perzsa" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Francia" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Héber" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "Magyar" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Olasz" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japán" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Koreai" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Holland" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norvég" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Lengyel" -#: InvenTree/settings.py:679 -msgid "Portugese" +#: InvenTree/settings.py:691 +msgid "Portuguese" msgstr "Portugál" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "Portugál (Brazíliai)" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Orosz" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Svéd" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Tháj" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Török" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnámi" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Kínai" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree rendszer állapotának ellenőrzése sikertelen" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Függőben" @@ -399,16 +412,16 @@ msgstr "Függőben" msgid "Placed" msgstr "Kiküldve" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Kész" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" -msgstr "Törölve" +msgstr "Megszakítva" #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:187 @@ -445,93 +458,97 @@ msgstr "Megsemmisült" msgid "Rejected" msgstr "Elutasított" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Örökölt készlet követési bejegyzés" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Készlet tétel létrehozva" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Szerkeszett készlet tétel" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Hozzárendelt sorozatszám" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Készlet megszámolva" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Készlet manuálisan hozzáadva" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Készlet manuálisan elvéve" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Hely megváltozott" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Gyártmányba beépült" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Gyártmányból eltávolítva" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Beépült összetevő tétel" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Eltávolított összetevő tétel" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Szülő tételből szétválasztva" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Szétválasztott gyermek tétel" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "Összevont készlet tétel" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "Alkatrészváltozattá alakítva" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Vevőnek elküldve" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Vevőtől visszaérkezett" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Gyártási rendelés kimenete elkészült" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Gyártási rendelés kimenete kész" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "Gyártásra felhasználva" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Megrendelésre érkezett" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" -msgstr "Termelés" +msgstr "Folyamatban" #: InvenTree/validators.py:25 msgid "Not a valid currency code" @@ -589,7 +606,7 @@ msgstr "Jelszó beállítása" msgid "Password fields must match" msgstr "A jelszavaknak egyeznie kell" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Rendszerinformáció" @@ -654,11 +671,11 @@ msgstr "Gyártási utasítás" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Gyártási utasítások" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Azonosító" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Gyártás rövid leírása" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Szülő gyártás" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Alkatrész" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Forrás hely" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Gyártás státusz kód" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Batch kód" @@ -783,8 +801,8 @@ msgstr "Batch kód" msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Létrehozás dátuma" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Elkészítés dátuma" @@ -805,7 +823,7 @@ msgstr "Elkészítés dátuma" msgid "completed by" msgstr "elkészítette" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Kiállította" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Felelős" @@ -826,11 +844,11 @@ msgstr "Felelős" msgid "User responsible for this build order" msgstr "Felhasználó aki felelős ezért a gyártási utasításért" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Külső link" @@ -839,17 +857,17 @@ msgstr "Külső link" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Megjegyzések" @@ -869,69 +887,69 @@ msgstr "Gyártási kimenet már kész" msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Lefoglalt mennyiség ({q}) nem lépheti túl a készletet ({a})" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Gyártás" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Gyártás amihez készletet foglaljunk" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Forrás készlet tétel" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Cél készlet tétel" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Add meg a mennyiséget a gyártás kimenetéhez" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" @@ -1013,8 +1031,8 @@ msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyed #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Sorozatszámok" @@ -1030,7 +1048,7 @@ msgstr "Sorozatszámok automatikus hozzárendelése" msgid "Automatically allocate required items with matching serial numbers" msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "A következő sorozatszámok már léteznek" @@ -1040,15 +1058,15 @@ msgstr "A gyártási kimenetek listáját meg kell adni" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Hely" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Állapot" @@ -1098,8 +1116,8 @@ msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz" msgid "No build outputs have been created for this build order" msgstr "Ehhez a gyártási utasításhoz nem készült kimenet" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" @@ -1220,7 +1238,7 @@ msgstr "Gyártási utasítás elkészültnek jelölhető" #: build/templates/build/build_base.html:120 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "Gyártási utasítás nem teljesíthető mivel kintlévő kimenetek maradnak" +msgstr "Befejezetlen gyártási kimenetek vannak" #: build/templates/build/build_base.html:125 msgid "Required build quantity has not yet been completed" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "A készlet nem lett teljesen lefoglalva ehhez a gyártási utasításhoz" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Cél dátum" @@ -1250,33 +1268,33 @@ msgstr "Ez a gyártás %(target)s-n volt esedékes" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" -msgstr "Megkésett" +msgstr "Késésben" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Kész" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Vevői rendelés" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Kiállította" @@ -1294,184 +1312,188 @@ msgstr "Gyártási utasítás nem teljesíthető mivel befejezetlen kimenetek ma msgid "Are you sure you wish to cancel this build?" msgstr "Biztosan meg szeretnéd szakítani ezt a gyártást?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "Biztosan törölni szeretnéd ezt a gyártási utasítást?" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Gyártás részletei" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Készlet forrás" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Cél" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "A cél hely nincs megadva" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Lefoglalt alkatrészek" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Batch" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Létrehozva" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Nincs céldátum beállítva" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Gyártás nincs kész" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Alárendelt gyártások" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Készlet foglalása gyártáshoz" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Készlet felszabadítása" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Készlet felszabadítása" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "Automatikus készlet foglalás a gyártáshoz" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "Automata foglalás" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "Manuális készlet foglalás a gyártáshoz" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Készlet foglalása" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Szükséges alkatrészek rendelése" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Alkatrész rendelés" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "Nem követett készlet teljesen lefoglalva ehhez a gyártási utasításhoz" +msgstr "Minden szükséges nem követett készlet le lett foglalva ehhez a gyártási utasításhoz" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "Nem követett készlet nincs teljesen lefoglalva ehhez a gyártási utasításhoz" +msgstr "Nincs minden nem követett készlet lefoglalva ehhez a gyártási utasításhoz" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Kiválasztott tételek lefoglalása" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Ez a gyártási utasítás egyáltalán nem tartalmaz nem követett alkatrészjegyzék tételt" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Befejezetlen gyártási kimenetek" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Új gyártási kimenet létrehozása" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "Új gyártási kimenet" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "Kimeneti műveletek" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "Kiválasztott gyártási kimenetek befejezése" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "Befejezett kimenetek" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "Kiválasztott gyártási kimenetek törlése" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "Kimenetek törlése" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Nyomtatási műveletek" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Címke nyomtatása" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Befejezett gyártási kimenetek" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Mellékletek" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Gyártási megjegyzések" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Megjegyzések szerkesztése" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Lefoglalás kész" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Az összes nem követett készlet lefoglalásra került" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "Új gyártási utasítás" @@ -1544,849 +1566,937 @@ msgstr "{name.title()} Fájl" msgid "Select {name} file to upload" msgstr "{name} fájl kiválasztása feltöltéshez" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Beállítás értéke" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "A kiválasztott érték nem egy érvényes lehetőség" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "Az érték bináris kell legyen" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "Az érték egész szám kell legyen" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "Kulcs string egyedi kell legyen" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "Nincs csoport" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "Újraindítás szükséges" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "InvenTree példány neve" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "String leíró a kiszolgáló példányhoz" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "Példány név használata" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "Példány név használata a címsorban" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Cég neve" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "Belső cégnév" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "Kiindulási URL" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "Kiindulási URL a kiszolgáló példányhoz" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Alapértelmezett pénznem" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Alapértelmezett pénznem" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Letöltés URL-ről" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Vonalkód támogatás" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Vonalkód olvasó engedélyezése" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "IPN reguláris kifejezés" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Többször is előforduló IPN engedélyezése" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Azonos IPN használható legyen több alkatrész esetén is" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "IPN szerkesztésének engedélyezése" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "Alkatrészjegyzék adatok másolása" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "Alkatrész paraméterek másolása" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "Alkatrész teszt adatok másolása" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "Kategória paraméter sablonok másolása" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Sablon" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Gyártmány" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Összetevő" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Beszerezhető" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Értékesíthető" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Követésre kötelezett" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtuális" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Alkatrészek alapból virtuálisak legyenek" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "Importálás megjelenítése a nézetekben" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "Import segéd megjelenítése néhány alkatrész nézetben" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Ár megjelenítése a formokon" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "Alkatrész árak megjelenítése néhány formon" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "Ár megjelenítése az alkatrészjegyzékben" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "Árinformációk megjelenítése az alkatrészjegyzék táblákban" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "Ártörténet megjelenítése" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "Alkatrész ártörténet megjelenítése" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "Kapcsolódó alkatrészek megjelenítése" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "Kezdeti készlet létrehozása" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "Kezdeti készlet megadása az alkatrész létrehozásakor" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "Belső árak" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "Alkatrészekhez belső ár engedélyezése" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "Belső ár alkatrészjegyzék árként" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Belső ár használata (ha van) az alkatrészjegyzék árszámításában" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "Alkatrész név megjelenítés formátuma" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Teszt riportok" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "Teszt riportok előállításának engedélyezése" -#: common/models.py:891 +#: common/models.py:943 +msgid "Batch Code Template" +msgstr "Batch kód sablon" + +#: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához" + +#: common/models.py:949 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:892 +#: common/models.py:950 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:898 +#: common/models.py:956 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:899 +#: common/models.py:957 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:905 +#: common/models.py:963 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:906 +#: common/models.py:964 msgid "Number of days stock items are considered stale before expiring" msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük" -#: common/models.py:908 +#: common/models.py:966 msgid "days" msgstr "nap" -#: common/models.py:913 +#: common/models.py:971 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:914 +#: common/models.py:972 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:920 +#: common/models.py:978 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:921 +#: common/models.py:979 msgid "Enable ownership control over stock locations and items" msgstr "Tuajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:927 +#: common/models.py:985 msgid "Build Order Reference Prefix" msgstr "Gyártási utasítás azonosító előtagja" -#: common/models.py:928 +#: common/models.py:986 msgid "Prefix value for build order reference" msgstr "Előtag értéke a gyártási utasítás azonosítóhoz" -#: common/models.py:933 +#: common/models.py:991 msgid "Build Order Reference Regex" msgstr "Gyártási utasítás azonosító reguláris kifejezés" -#: common/models.py:934 +#: common/models.py:992 msgid "Regular expression pattern for matching build order reference" msgstr "Gyártási utasítás azonosítóra illeszkedő reguláris kifejezés" -#: common/models.py:938 +#: common/models.py:996 msgid "Sales Order Reference Prefix" msgstr "Vevői rendelés azonosító előtagja" -#: common/models.py:939 +#: common/models.py:997 msgid "Prefix value for sales order reference" msgstr "Előtag értéke a vevői rendelés azonosítóhoz" -#: common/models.py:944 +#: common/models.py:1002 msgid "Purchase Order Reference Prefix" msgstr "Beszerzési rendelés azonosító előtagja" -#: common/models.py:945 +#: common/models.py:1003 msgid "Prefix value for purchase order reference" msgstr "Előtag értéke a beszerzési rendelés azonosítóhoz" -#: common/models.py:951 +#: common/models.py:1009 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:952 +#: common/models.py:1010 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:957 +#: common/models.py:1015 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:958 +#: common/models.py:1016 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/models.py:963 +#: common/models.py:1021 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:964 +#: common/models.py:1022 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:969 +#: common/models.py:1027 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:970 +#: common/models.py:1028 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:975 +#: common/models.py:1033 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:976 +#: common/models.py:1034 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/models.py:981 +#: common/models.py:1039 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:982 +#: common/models.py:1040 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/models.py:987 +#: common/models.py:1045 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:988 +#: common/models.py:1046 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/models.py:993 +#: common/models.py:1051 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:994 +#: common/models.py:1052 msgid "Group to which new users are assigned on registration" msgstr "Csoport amihez a frissen regisztrált felhasználók hozzá lesznek rendelve" -#: common/models.py:999 +#: common/models.py:1057 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:1000 +#: common/models.py:1058 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:1007 +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "Pluginok ellenőrzése indításkor" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" + +#: common/models.py:1072 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:1008 +#: common/models.py:1073 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1014 +#: common/models.py:1079 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:1015 +#: common/models.py:1080 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:1021 +#: common/models.py:1086 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "Legfrissebb alkatrész szám" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "Főoldalon megjelenítendő legújabb alkatrészek" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "Legfrissebb készlet mennyiség" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "Főoldalon megjelenítendő legújabb készlet tételek száma" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "Szükséges készlet megjelenítése" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" -msgstr "Megkésett gyártások megjelenítése" +msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" -msgstr "Megkésett gyártások megjelenítése a főoldalon" +msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" -msgstr "Megkésett megrendelések megjelenítése" +msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" -msgstr "Megkésett megrendelések megjelenítése a főoldalon" +msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "Kintlévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" -msgstr "Megkésett vevői rendelések megjelenítése" +msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" -msgstr "Megkésett vevői rendelések megjelenítése a főoldalon" +msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:1192 +#: common/models.py:1257 +msgid "Enable email notifications" +msgstr "Email értesítések engedélyezése" + +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" +msgstr "Email küldés engedélyezése esemény értesítésekre" + +#: common/models.py:1264 +msgid "Enable label printing" +msgstr "Címke nyomtatás engedélyezése" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "Címke nyomtatás engedélyezése a web felületről" + +#: common/models.py:1271 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:1193 +#: common/models.py:1272 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:1199 +#: common/models.py:1278 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:1200 +#: common/models.py:1279 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:1206 +#: common/models.py:1285 +msgid "Search Parts" +msgstr "Alkatrészek keresése" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "Alkatrészek megjelenítése a keresési előnézetben" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "Kategóriák keresése" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "Készlet keresése" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "Készlet tételek megjelenítése a keresési előnézetben" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "Helyek keresése" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "Készlet helyek megjelenítése a keresési előnézetben" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "Cégek keresése" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "Cégek megjelenítése a keresési előnézetben" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "Beszerzési rendelések keresése" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "Vevői rendelések keresése" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "Vevői rendelések megjelenítése a keresési előnézetben" + +#: common/models.py:1334 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "A keresési előnézetben megjelenítendő eredmények száma" +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "Készlet keresés" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "Készlet mennyiség megjelenítése a keresési előnézetben" - -#: common/models.py:1220 +#: common/models.py:1341 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:1221 +#: common/models.py:1342 msgid "Hide inactive parts in search preview window" msgstr "Inaktív alkatrészek elrejtése a kereső előnézeti ablakban" -#: common/models.py:1227 +#: common/models.py:1348 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:1228 +#: common/models.py:1349 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:1234 +#: common/models.py:1355 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:1235 +#: common/models.py:1356 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:1241 +#: common/models.py:1362 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "InvenTree menü pozíciója mindig rögzítve legyen a lap tetején" +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" -#: common/models.py:1248 +#: common/models.py:1369 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:1249 +#: common/models.py:1370 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:1263 part/templates/part/detail.html:40 +#: common/models.py:1384 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:1264 +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "Árlépcső mennyiség" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "Ár" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Aktív" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "Token" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "Titok" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "Fejléc" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "Törzs" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Fájl feltöltése" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Mezők egyeztetése" @@ -2409,7 +2519,7 @@ msgstr "Importált alkatrészek" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Előző lépés" @@ -2477,7 +2587,7 @@ msgstr "Kapcsolattartó" msgid "Link to external company information" msgstr "Link a külső céginformációhoz" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Kép" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Gyárt ez a cég alkatrészeket?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Pénznem" @@ -2514,8 +2625,8 @@ msgstr "Pénznem" msgid "Default currency used for this company" msgstr "Cég által használt alapértelmezett pénznem" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Kiindulási alkatrész" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "Válassz alkatrészt" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Gyártó" @@ -2538,17 +2649,17 @@ msgstr "Gyártó" msgid "Select manufacturer" msgstr "Gyártó kiválasztása" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:247 msgid "Manufacturer Part Number" -msgstr "Gyártói alkatrész azonosító" +msgstr "Gyártói cikkszám" #: company/models.py:349 msgid "URL for external manufacturer part link" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "Gyártói alkatrész leírása" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" @@ -2571,8 +2682,8 @@ msgstr "Paraméter neve" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "Érték" @@ -2580,10 +2691,10 @@ msgstr "Érték" msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "Mértékegységek" @@ -2599,11 +2710,11 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Beszállító" @@ -2613,13 +2724,13 @@ msgstr "Beszállító kiválasztása" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" #: company/models.py:552 templates/js/translated/part.js:228 msgid "Supplier stock keeping unit" -msgstr "Beszállítói alkatrész azonosító" +msgstr "Beszállítói cikkszám" #: company/models.py:559 msgid "Select manufacturer part" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Megjegyzés" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "alap költség" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "Csomagolás" @@ -2658,7 +2769,7 @@ msgstr "Csomagolás" msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "többszörös" @@ -2668,7 +2779,7 @@ msgstr "Többszörös rendelés" #: company/models.py:708 msgid "last updated" -msgstr "" +msgstr "utoljára módosítva" #: company/serializers.py:70 msgid "Default currency used for this supplier" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "Kép letöltése URL-ről" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Vevő" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "Telefonszám" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "Kép feltöltése" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Beszállítói alkatrészek" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Új beszállítói alkatrész létrehozása" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Új beszállítói alkatrész" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "Opciók" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Alkatrész rendelés" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Alkatrész törlés" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Alkatrész törlés" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Új gyártói alkatrész létrehozása" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "Új gyártói alkatrész" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Beszállítói készlet" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Beszerzési rendelések" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Beszerzési rendelés létrehozása" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Új beszerzési rendelés" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "Vevői rendelések" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Vevői rendelés létrehozása" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Új vevői rendelés" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "Hozzárendelt készlet" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Cég megjegyzések" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "Töröljük a beszállítói alkatrészeket?" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz" @@ -2872,83 +2985,83 @@ msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz" msgid "Supplier List" msgstr "Beszállítók listája" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Gyártók" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Alkatrész rendelés" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "Gyártói alkatrész szerkesztése" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "Gyártói alkatrész törlése" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "Belső alkatrész" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Beszállítók" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Beszállítói alkatrész törlése" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Törlés" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paraméterek" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Új paraméter" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "Paraméterek törlése" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "Paraméter hozzáadása" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "A kiválasztott paraméterek törlésre kerülnek" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "Paraméterek törlése" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "Hozzárendelt készlet tételek" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "Beszállítói alkatrész" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "Beszállítói készlet" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Új készlet tétel létrehozása" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "Új készlet tétel" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "Beszállítói alkatrész rendelések" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Alkatrész rendelése" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "Árinformációk" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "Árlépcső hozzáadása" @@ -3026,11 +3139,13 @@ msgstr "Árlépcső hozzáadása" msgid "No price break information found" msgstr "Nincs árlépcső információ" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "Árlépcső törlése" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "Árlépcső szerkesztése" @@ -3044,18 +3159,18 @@ msgstr "Árlépcső törlése" #: company/templates/company/supplier_part.html:273 msgid "Last updated" -msgstr "" +msgstr "Utoljára módosítva" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Készlet" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "Beszállító alkatrész árazás" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Árazás" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Készlet tételek" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Új gyártó" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Vevők" @@ -3100,7 +3218,7 @@ msgstr "Vevők" msgid "New Customer" msgstr "Új vevő" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Cégek" @@ -3108,24 +3226,24 @@ msgstr "Cégek" msgid "New Company" msgstr "Új cég" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Kép letöltése" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "A kép mérete meghaladja a maximum megengedett letöltés méretét" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Érvénytelen válasz: {code}" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" @@ -3266,7 +3384,7 @@ msgstr "Várható beérkezés" #: order/models.py:250 msgid "Expected date for order delivery. Order will be overdue after this date." -msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután számít majd megkésettnek." +msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután már késésben lévőnek számít majd." #: order/models.py:256 msgid "Date order was completed" @@ -3349,9 +3467,9 @@ msgstr "Rendelés" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "Beszerzési rendelés" @@ -3361,8 +3479,8 @@ msgstr "Beszállítói alkatrész" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "Beérkezett" @@ -3370,9 +3488,9 @@ msgstr "Beérkezett" msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "Beszerzési ár" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "Eladási ár" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "Sor" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "Szállítmány" @@ -3478,7 +3596,7 @@ msgstr "Szállítmány" msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítás azonosító" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "Tétel" @@ -3607,14 +3725,14 @@ msgid "Receive items" msgstr "Érkezett tételek bevételezése" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "Bevételezés" #: order/templates/order/order_base.html:62 #: order/templates/order/sales_order_base.html:67 order/views.py:181 msgid "Complete Order" -msgstr "Rendelés kész" +msgstr "Rendelés befejezése" #: order/templates/order/order_base.html:84 #: order/templates/order/sales_order_base.html:79 @@ -3657,7 +3775,7 @@ msgstr "A rendelés törlésével annak adatai és sortételei a továbbiakban m #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" -msgstr "Rendelés késznek jelölése?" +msgstr "Rendelés befejezettnek jelölése?" #: order/templates/order/order_complete.html:10 msgid "This order has line items which have not been marked as received." @@ -3665,7 +3783,7 @@ msgstr "Ez a rendelés olyan sortételeket tartalmaz amik még nem érkeztek be. #: order/templates/order/order_complete.html:11 msgid "Completing this order means that the order and line items will no longer be editable." -msgstr "A rendelés készre jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők." +msgstr "A rendelés befejezésével jelölésével annak adatai és sortételei a továbbiakban már nem lesznek szerkeszthetők." #: order/templates/order/order_issue.html:8 msgid "After placing this purchase order, line items will no longer be editable." @@ -3700,9 +3818,9 @@ msgstr "Beszállítói alkatrész kiválasztása" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Sor törlése" @@ -3718,7 +3836,7 @@ msgstr "Fájl feltöltése a beszerzési megrendeléshez" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "%(step)s/%(count)s. lépés" @@ -3796,27 +3914,27 @@ msgstr "Sortételek" msgid "Received Stock" msgstr "Beérkezett készlet" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "Beszerzési rendelés tételei" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Sortétel hozzáadása" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "Kiválasztott tételek bevételezése" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Érkezett tételek" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Rendelés megjegyzések" @@ -3836,7 +3954,7 @@ msgstr "Csomagolási lista nyomtatása" #: order/templates/order/sales_order_base.html:66 #: order/templates/order/sales_order_base.html:229 msgid "Complete Sales Order" -msgstr "Vevői rendelés kész" +msgstr "Vevői rendelés befejezése, minden kiszállítva" #: order/templates/order/sales_order_base.html:102 msgid "This Sales Order has not been fully allocated" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "Vevői azonosító" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Kész szállítások" @@ -3866,21 +3984,21 @@ msgstr "Figyelem" msgid "Cancelling this order means that the order will no longer be editable." msgstr "A rendelés törlésével annak adatai a továbbiakban már nem lesznek szerkeszthetők." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "Vevői rendelés tételek" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "Függő szállítmányok" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "Műveletek" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "Új szállítmány" @@ -3951,52 +4069,52 @@ msgstr "A {part} egységára {price}-ra módosítva" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "Beérkező beszerzési rendelés" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "Kimenő vevői rendelés" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "Gyártással előállított készlet" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "A gyártási utasításhoz szükséges készlet" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "Érvényes" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "Teljes alkatrészjegyzék jóváhagyása" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "Nullánál nagyobb kell legyen" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "Érvényes mennyiségnek kell lennie" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "Hely megadása a kezdeti alkarész készlethez" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "Ez a mező kötelező" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Alapértelmezett hely" @@ -4004,14 +4122,16 @@ msgstr "Alapértelmezett hely" msgid "Total Stock" msgstr "Teljes készlet" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "Elérhető készlet" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" -msgstr "Beszállítás alatt" +msgstr "Rendelve" #: part/forms.py:84 msgid "Select part category" @@ -4041,14 +4161,14 @@ msgstr "Alapértelmezett kulcsszavak" msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Alkatrész kategóriák" @@ -4057,9 +4177,10 @@ msgstr "Alkatrész kategóriák" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Alkatrészek" @@ -4084,472 +4205,482 @@ msgstr "A következő szabad sorozatszám" msgid "Most recent serial number is" msgstr "A legutóbbi sorozatszám" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "Alkatrész leírása" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Kulcsszavak" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "Kategória" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "IPN" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" -msgstr "Belső alkatrész azonosító" +msgstr "Belső cikkszám" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Változat" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimális készlet" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "Az alkatrész raktározási mértékegységei" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "Alkatrész megjegyzései - támogatja a Markdown formázást" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "Erre az alkatrészre már létezik teszt ilyen névvel" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "Kötelező" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Érvénytelen karakter ({c}) a sablon nevében" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "Paraméter mértékegysége" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "Adat" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" -msgstr "Alkatrész azonosító vagy alkatrész név" +msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" -msgstr "Alkatrész azonosító" +msgstr "Alkatrész ID" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" -msgstr "Egyedi alkatrész azonosító érték" +msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "Alkatrész neve" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "Alkatrész IPN" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "Szint" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "Opcionális" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "Örökölt" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" -msgstr "Változatok engedélyezése" +msgstr "Változatok" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "1.rész" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "2.rész" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "Hiba a kapcsolat létrehozása közben: ellenőrizd hogy az alkatrész nem kapcsolódik-e saját magához és azt hogy a kapcsolat egyedi" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "Beszerzési pénzneme ennek a készlet tételnek" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "Alacsony készlet értesítés" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "A {part.name} alkatrész rendelkezésre álló készlete a megadott minimum alá csökkent" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "Nincs jogosultságod az alkatrészjegyzék szerkesztéséhez." @@ -4569,7 +4700,7 @@ msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzéket utoljár msgid "The BOM for %(part)s has not been validated." msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék még nincs jóváhagyva." -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "Alkatrészjegyzék műveletek" @@ -4621,7 +4752,7 @@ msgstr "Kategória elérési út" msgid "Top level part category" msgstr "Legfelső szintű alkatrész kategória" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alkategóriák" @@ -4658,23 +4789,23 @@ msgstr "Exportálás" msgid "Export Data" msgstr "Adatok exportálása" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "Alkatrész paraméterek" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "Alkatrész kategória létrehozása" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "Alkatrész létrehozása" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "Új alkatrész létrehozása ez után" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "Alkatrész sikeresen létrehozva" @@ -4714,7 +4845,7 @@ msgstr "Ha ez a kategória törölve lesz, ezek az alkatrészek a legfelső kate msgid "Import Parts" msgstr "Alkatrészek importálása" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "Alkatrész másolása" @@ -4738,150 +4869,150 @@ msgstr "Az új alkatrész lehet hogy másodpéldánya ezeknek a létezőknek" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "%(full_name)s - %(desc)s (%(match_per)s%% egyezik)" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Alkatrész készlet" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Alkatrész teszt sablonok" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Teszt sablon hozzáadása" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "Vevői rendeléshez foglalások" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "Alkatrész megjegyzések" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "Alkatrész változatok" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "Új változat létrehozása" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "Új változat" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "Paraméter hozzáadása" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "Kapcsolódó hozzáadása" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "Exportálási műveletek" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "Alkatrészjegyzék exportálása" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "Alkatrészjegyzék riport nyomtatása" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "Alkatrészjegyzék feltöltése" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "Alkatrészjegyzék jóváhagyása" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "Új alkatrészjegyzék tétel" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "Alkatrészjegyzék tétel hozzáadása" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "Gyártmányok" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "Alkatrész gyártások" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "Gyártáshoz foglalások" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "Alkatrész beszállítók" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "Alkatrész gyártók" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "Gyártói alkatrészek törlése" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "Töröljük a kiválasztott alkatrészjegyzék tételeket?" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "Az összes kijelölt alkatrészjegyzék tétel törlésre kerül" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "Alkatrészjegyzék tétel létrehozása" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "Kapcsolódó alkatrész" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "Teszt eredmény sablon hozzáadása" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "Alkatrész megjegyzések szerkesztése" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "Beszerzési egységár - %(currency)s" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "Egységár-önköltség különbség - %(currency)s" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "Beszállítói egység költség - %(currency)s" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "Egységár - %(currency)s" @@ -4947,234 +5078,217 @@ msgstr "Értesítések kérése erre az alkatrészre" msgid "Barcode actions" msgstr "Vonalkód műveletek" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR kód megjelenítése" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Címke nyomtatása" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "Árinformációk megjelenítése" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Készlet műveletek" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "Készlet számolása" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "Készlet műveletek" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "Alkatrész másolása" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "Alkatrész szerkesztése" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "Alkatrész törlése" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "Sablon alkatrész (változatok létrehozhatók belőle)" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "Ez az alkatrész gyártható másik alkatrészekből" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "Használható más alkatrészek gyártásához" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "Készlet sorozatszám alapján követendő" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "Beszállítótól rendelhető" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "Vevő által rendelhető, eladható" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "Virtuális (nem kézzelfogható alkatrész)" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "Inaktív" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "Alkatrész részletei" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "Ez az alkatrész egy változata a %(link)s alkatrésznek" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "Készleten" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "Gyártáshoz szükséges" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" -msgstr "" +msgstr "Gyártáshoz lefoglalva" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "Vevői rendelésekhez szükséges" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" -msgstr "" +msgstr "Vevő rendeléshez lefoglalva" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "Gyártható" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "Gyártásban" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "Minimális készlet" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "Legutolsó sorozatszám" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "Sorozatszámra keresés" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "Számítás" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "Nincs egyező kép" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "Részletek elrejtése" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "Beszállító árazás" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "Egység költség" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "Teljes költség" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "Nincs beszállítói árinfomáció" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "Alkatrészjegyzék árazás" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "Beszerzési egységár" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "Teljes beszerzési ár" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "Megjegyzés: ennek az alkatrésznek az alkatrészjegyzék árazása nem teljes" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "Nincs alkatrészjegyzék árinfomáció" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "Belső ár" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "Az alkatrészhez nem áll rendelkezésre árinformáció." -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "Változatok" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Felhasználva ebben" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "Ütemezés" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "Teszt sablonok" @@ -5219,69 +5333,69 @@ msgstr "Ennek az alkatrésznek %(count)s beszállítója van. Ha törlöd a köv msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "Összesen %(count)s követésre kötelezett '%(full_name)s' alkatrész van. Ha törlöd, a követési információk véglegesen elvesznek." -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "Ártartományok" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "Beszállítói költség megjelenítése" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "Beszerzési ár megjelenítése" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "Alkatrészjegyzék költség megjelenítése" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "Értékesítési költség megjelenítése" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "Eladási ár megjelenítése" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "Számítási paraméterek" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "Beszállítói költség" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "Ugrás az áttekintéshez" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "Készlet árazás" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "Az alkatrészhez nem áll rendelkezésre ártörténet." -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "Belső költség" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "Belső árlépcső hozzáadása" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "Alkatrészjegyzék költség" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "Eladási költség" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "Az alkatrészhez nem áll rendelkezésre eladási ártörténet." @@ -5289,9 +5403,8 @@ msgstr "Az alkatrészhez nem áll rendelkezésre eladási ártörténet." msgid "Set category for the following parts" msgstr "Állítsd be a következő alkatrészek kategóriáját" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "Nincs készlet" @@ -5345,112 +5458,109 @@ msgstr "Alkatrész változat létrehozása" msgid "Create a new variant of template '%(full_name)s'." msgstr "Új változat létrehozása a '%(full_name)s' sablonból." -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "Ismeretlen adatbázis" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "Alkatrész kategória beállítása" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "Állítsd be {n} alkatrész kategóriáját" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "Azonosítók egyeztetése" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "Egyik sem" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "Alkatrész QR kódja" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "Válassz képet az alkatrészhez" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "Alkatrész képe frissítve" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "Az alkatrész képe nem található" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "Alkatrész törlés megerősítése" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "Alkatrész törölve" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "Alkatrész árak" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "Alkatrész paraméter sablon létrehozása" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "Alkatrész paraméter sablon módosítása" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "Alkatrész paraméter sablon törlése" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "Alkatrész kategória szerkesztése" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "Alkatrész kategória törlése" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "Alkatrész kategória törölve" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "Kategória paraméter sablon létrehozása" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "Kategória paraméter sablon szerkesztése" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "Kategória paraméter sablon törlése" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "Új árlépcső hozzáadva" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "Belső árlépcső szerkesztése" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "Belső árlépcső törlése" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "A környezeted egy elavult git verziót használ. Ez megakadályozza hogy az InvenTree betöltse a plugin részleteit." -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "Címkenyomtatás sikertelen" + +#: plugin/integration.py:146 msgid "No author found" msgstr "Nincs szerző" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "Nincs dátum" @@ -5478,7 +5588,7 @@ msgstr "PluginNeve a pluginnak" msgid "Is the plugin active" msgstr "Aktív-e a plugin" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "Plugin" @@ -5514,35 +5624,35 @@ msgstr "Választás beállításai" msgid "A setting with multiple choices" msgstr "Egy beállítás több választási lehetőséggel" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "Forrás URL" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Csomag forrása - ez lehet egy registry vagy VCS útvonal" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "Csomag neve" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Plugin csomag neve - verzió megjelölést is tartalmazhat" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "Bővítmény telepítésének megerősítése" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Ez telepíti ezt a plugint az aktuális példányra. A példány karbantartási módba megy." -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "Tlepítés nincs megerősítve" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "Vagy csomag nevet vagy URL-t meg kell adni" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "Készlet tétel teszt riport" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Sorozatszám" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "Teszt" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "Eredmény" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "Dátum" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "Beépített tételek" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "Sorozatszám" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "Mennyiség megadása kötelező" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "Egy érvényes alkatrészt meg kell adni" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -5747,228 +5857,232 @@ msgstr "Kiszedés megerősítése" msgid "Confirm removal of installed stock items" msgstr "Beépített készlet tételek eltávolításának megerősítése" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "A alkatrész típus ('{pf}') {pe} kell legyen" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "Beépítve ebbe" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "Készlet tétel megjegyzések" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "Alkatrésszé alakítva" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "A mennyiség nem lépheti túl a készletet ({n})" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Ezek a sorozatszámok már léteznek: {exists}" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "Teszt neve" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "Tesztek megjegyzései" @@ -5976,10 +6090,6 @@ msgstr "Tesztek megjegyzései" msgid "Purchase price of this stock item" msgstr "Beszerzési ára ennek a készlet tételnek" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "Beszerzési pénzneme ennek a készlet tételnek" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal" @@ -6005,7 +6115,7 @@ msgstr "Opcionális megjegyzés mező" msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" @@ -6081,11 +6191,11 @@ msgstr "Készlet tétel elsődleges kulcs értéke" msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Készlettörténeti információk" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "Új bejegyzés" @@ -6102,7 +6212,7 @@ msgstr "Ez a készlet tétel nem tartalmaz egy altételt sem" msgid "Test Data" msgstr "Teszt adatok" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "Teszt riport" @@ -6114,15 +6224,15 @@ msgstr "Teszt adatok törlése" msgid "Add Test Data" msgstr "Teszt adatok hozzáadása" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" @@ -6140,180 +6250,180 @@ msgstr "Vonalkód hozzárendelése" msgid "Scan to Location" msgstr "Beolvasás helyre" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "Nyomtatási műveletek" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "Készlet módosítási műveletek" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "Leltározás" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "Készlet növelése" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "Készlet csökkentése" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "Sorozatszámok előállítása" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Készlet áthelyezése" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "Vevőhöz rendelése" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "Visszavétel készletre" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "Készlet tétel kiszedése" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "Kiszedés" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "Készlet tétel beépítése" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "Beépítés" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "Változattá alakítás" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "Készlet tétel másolása" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "Készlet tétel szerkesztése" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "Készlet tétel törlése" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "előző oldal" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "Menj az előző sorozatszámhoz" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "követkető oldal" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "Menj a következő sorozatszámhoz" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "Lejárt" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "Állott" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "Utoljára módosítva" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "Még nem volt leltározva" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "Ez a készlet tétel éppen gyártás alatt van és nem szerkeszthető." -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "Készlet tétel szerkesztése a gyártási nézetből." -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "Ez a készlet tétel nem felelt meg az összes szükséges teszten" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" -msgstr "Ez a készlet tétel ehhez a vevői rendeléshez van lefoglalva:" +msgstr "Foglalva ehhez a vevői rendeléshez" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" -msgstr "Ez a készlet tétel ehhez a gyártási utasításhoz van lefoglalva:" +msgstr "Foglalva ehhez a gyártási utasításhoz" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Ez a készlet tétel egyedi követésre kötelezett - egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható." -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Nincs beállítva hely" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "Vonalkód azonosító" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "Szülő tétel" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "Nincs beállítva gyártó" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "Tesztek" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "Csak olvasható" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "Készlet állapot szerkesztése" @@ -6332,68 +6442,61 @@ msgstr "Sorszámozott készletek létrehozása ebből a készlet tételből." #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." -msgstr "Válaszz mennyiséget és egyedi sorozatszámokat a sorozatszámozáshoz." +msgstr "Válassz mennyiséget és egyedi sorozatszámokat a sorozatszámozáshoz." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "Tételek bevételezése" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "Hely műveletek" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Hely szerkesztése" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "Hely törlése" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "Új készlet hely létrehozása" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Új hely" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "Hely elérési út" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "Legfelső szintű készlet hely" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "Hely tulajdonosa" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alhelyek" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "Készlethelyek" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "Nyomtatási műveletek" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Címke nyomtatása" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "Biztosan törölni szeretnéd ezt a készlet helyet?" @@ -6467,11 +6570,11 @@ msgstr "Ez a művelet nem vonható vissza könnyen" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "Biztosan törölni akarod ezt a készlettörténeti bejegyzést?" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "Készlet hely szerkesztése" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "Tulajdonos szükséges (tulajdonosok kezelése engedélyezve van)" @@ -6511,7 +6614,7 @@ msgstr "Készlet tétel QR kódja" msgid "Uninstall Stock Items" msgstr "Készlet tétel kiszedése" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "Készlet módosítás jóváhagyása" @@ -6519,71 +6622,72 @@ msgstr "Készlet módosítás jóváhagyása" msgid "Uninstalled stock items" msgstr "Kiszedett készlet tételek" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Új készlet hely létrehozása" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "Új készlet tétel létrehozása" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "Készlet tétel másolása" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "A mennyiség nem lehet negatív" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "Készlethely törlése" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "Készlet tétel törlése" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "Készlettörténet bejegyzés törlése" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "Készlettörténet bejegyzés szerkesztése" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "Készlettörténet bejegyzés hozzáadása" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "Hozzáférés megtagadva" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "Nincs jogosultságod az oldal megtekintéséhez." -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "Az oldal nem található" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "A kért oldal nem létezik" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "Belső kiszolgáló hiba" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" -msgstr "Az InvenTree kiszolgáló belső hibát jelzett" - #: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "Nézd meg az admin felületen lévő hibanaplót bővebb információkért" @@ -6623,6 +6727,10 @@ msgstr "Nemrég frissítve" msgid "Depleted Stock" msgstr "Kimerült készlet" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "Gyártáshoz szükséges" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "Lejárt készlet" @@ -6637,7 +6745,7 @@ msgstr "Folyamatban lévő gyártások" #: templates/InvenTree/index.html:235 msgid "Overdue Build Orders" -msgstr "Megkésett gyártások" +msgstr "Késésben lévő gyártások" #: templates/InvenTree/index.html:255 msgid "Outstanding Purchase Orders" @@ -6645,7 +6753,7 @@ msgstr "Kintlévő beszerzési rendelések" #: templates/InvenTree/index.html:266 msgid "Overdue Purchase Orders" -msgstr "Megkésett megrendelések" +msgstr "Késésben lévő megrendelések" #: templates/InvenTree/index.html:286 msgid "Outstanding Sales Orders" @@ -6653,7 +6761,71 @@ msgstr "Függő vevői rendelések" #: templates/InvenTree/index.html:297 msgid "Overdue Sales Orders" -msgstr "Megkésett vevői rendelések" +msgstr "Késésben lévő vevői rendelések" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "Értesítések előzményei" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "Előzmények frissítése" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "Függő értesítések" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "Mind megjelölése olvasottként" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "Függő értesítések frissítése" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "Értesítések" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "Azonosító" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "Életkor" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "Üzenet" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "Értesítés törlése" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "Nem találhatók olvasatlan értesítések" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "Nem található régebbi értesítés" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "Olvasatlan" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "Előzmények" #: templates/InvenTree/search.html:8 msgid "Search Results" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "Kiszolgáló beállítások" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "Belépési beállítások" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "Regisztráció" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "Beállítások" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "Plugin beállítások" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." -msgstr "Az alábbi beállítások módosításához az InvenTree azonnali újraindítása szükséges. Aktív használat közben ne változtass ezeken." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." +msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "Pluginok" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "Plugin Telepítése" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "Szerző" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "Verzió" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "kód minta" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "Inaktív pluginok" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "Plugin hibatároló" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "Szakasz" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "Üzenet" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,8 +6996,8 @@ msgid "This plugin was installed as a package" msgstr "Ez a plugin csomagként lett telepítve" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" -msgstr "Ez a plugin a lokális InvenTree útvonalon található" +msgid "This plugin was found in a local server path" +msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" @@ -6874,40 +7046,36 @@ msgstr "Nincsenek értékek" msgid "Edit setting" msgstr "Beállítások módosítása" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "Plugin beállítások módosítása" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "Általános beállítások szerkesztése" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "Felhasználói beállítások szerkesztése" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "Nincs kategória paraméter sablon" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" msgstr "Sablon szerkesztése" -#: templates/InvenTree/settings/settings.html:231 -#: templates/InvenTree/settings/settings.html:330 +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "Sablon törlése" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "Nincs alkatrész paraméter sablon" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "Azonosító" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "Főoldal" msgid "Search Settings" msgstr "Keresési beállítások" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "Címke nyomtatás" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "Riportolás" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "Általános beállítások" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "Kiszolgáló konfiguráció" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "Pénznemek" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "Kategóriák" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "Jelszó módosítása" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Szerkesztés" @@ -7183,8 +7352,8 @@ msgstr "Segítsd a fordítási munkát!" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "A nyelvi fordításai az InvenTree web alkalmazásnak közösségiek a crowdin-en. A közreműködéseket szívesen fogadjuk és bátorítjuk." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -7194,6 +7363,10 @@ msgstr "Főoldal beállításai" msgid "Label Settings" msgstr "Címke beállítások" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "Értesítési beállítások" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "InvenTree verzió információk" @@ -7278,37 +7451,29 @@ msgstr "Erősítsd meg hogy a %(email)s email a msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "Ez az email megerősítő link lejárt vagy hibás. Klikk ide az új megerősítési kérelem elküldéséhez." -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "Bejelentkezés" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "Kérlek jelentkezz be az egyik meglévő külső fiókkal vagy Regisztrálj fiókért és jelentkezz be lentebb:" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "Ha még nem hoztál létre fiókot akkor előbb regisztrálj." -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "Elfelejtett jelszó?" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "InvenTree demo példány" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "Kattints ide belépési részletekért" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "vagy használj SSO-t" @@ -7449,15 +7614,15 @@ msgstr "Link hozzáadása" msgid "Add Attachment" msgstr "Melléklet hozzáadása" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "Kiszolgáló újraindítása szükséges" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "Egy olyan konfigurációs opció megváltozott ami a kiszolgáló újraindítását igényli" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "Vedd fel a kapcsolatot a rendszergazdával további információkért" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "Szükséges mennyiség" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Elérhető" @@ -7496,15 +7662,6 @@ msgstr "Elérhető" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "Ezért kapod ezt a levelet mert értesítést kértél erre az alkatrészre " -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "InvenTree verzió" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr " A %(part)s alkatrész rendelkezésre álló készlete a megadott minimum alá csökkent" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez" @@ -7529,67 +7686,67 @@ msgstr "A távoli kiszolgálónak elérhetőnek kell lennie" msgid "Remote image must not exceed maximum allowable file size" msgstr "A távoli kép mérete nem haladhatja meg a maximális fájlméretet" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Nincs válasz" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "Nincs válasz az InvenTree kiszolgálótól" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "Error 400: Rossz kérelem" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "Az API kérelem 400-as hibakódot adott vissza" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "Error 401: Nincs hitelesítve" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "Hitelesítési adatok nem lettek megadva" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Error 403: Hozzáférés megtagadva" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Nincs meg a szükséges jogosultságod, hogy elérd ezt a funkciót" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "Error 404: Erőforrás nem található" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "A kért erőforrás nem található a kiszolgálón" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "Error 405: Metódus nincs engedélyezve" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "HTTP metódus nincs engedélyezve ezen az URL-n" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "Error 408: Időtúllépés" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "Időtúllépés a kiszolgálótól való adatlekérés közben" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "Nem kezelt hibakód" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "Hiba kód" @@ -7658,7 +7815,7 @@ msgstr "Érvénytelen válasz a szervertől" msgid "Scan barcode data below" msgstr "Olvasd be a vonalkódot lentebb" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "Vonalkód beolvasása" @@ -7678,45 +7835,44 @@ msgstr "Ez törli az összerendelést a készlet tétel és a vonalkód között msgid "Unlink" msgstr "Leválasztás" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "Készlet tétel törlése" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Készlet bevételezése az adott helyre" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "Bevételezés" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "Hiba a készlet áthelyezésekor" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" +msgstr "Nincs vonalkód beolvasva" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "Készlet tétel már beolvasva" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Készlet tétel már ezen a helyen van" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "Hozzáadott készlet tétel" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "Vonalkód nem egyezik a készlet tétellel" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Bevételezés az adott helyre" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "A vonalkód nem egyezik egy ismert hellyel sem" @@ -7796,7 +7952,7 @@ msgstr "Helyettesítő alkatrész törlése" #: templates/js/translated/bom.js:565 msgid "Select and add a new substitute part using the input below" -msgstr "Válaszz és adj hozzá új helyettesítő alkatrészt a lenti mezőben" +msgstr "Válassz és adj hozzá új helyettesítő alkatrészt a lenti mezőben" #: templates/js/translated/bom.js:576 msgid "Are you sure you wish to remove this substitute part link?" @@ -7814,67 +7970,84 @@ msgstr "Helyettesítő hozzáadása" msgid "Edit BOM Item Substitutes" msgstr "Alkatrészjegyzék tétel helyettesítők szerkesztése" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "Vannak helyettesítők" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "Készletváltozatok engedélyezve" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "Al-gyártmány megnyitása" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "Nincs szabad" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "Változatokkal és helyettesítőkkel együtt" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "Változatokkal együtt" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "Helyettesítőkkel együtt" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "Helyettesítõk" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "Beszerzési ártartomány" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "Beszerzési átlagár" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "Alkatrészjegyzék megtekintése" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "Alkatrészjegyzék tétel jóváhagyása" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "Ez a sor jóvá lett hagyva" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "Helyettesítő alkatrészek szerkesztése" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "Alkatrészjegyzék tétel szerkesztése" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "Alkatrészjegyzék tétel törlése" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "Nem találhatók alkatrészjegyzék tételek" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "Biztos törölni akarod ezt az alkatrészjegyzék tételt?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "Szükséges alkatrész" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "Örökölve a szülő alkatrészjegyzéktől" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "Gyártási utasítás befejezése" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "Következő szabad sorozatszám" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "Legutolsó sorozatszám" @@ -7946,7 +8119,7 @@ msgstr "Gyártási kimenet törlése" #: templates/js/translated/build.js:325 msgid "Are you sure you wish to unallocate stock items from this build?" -msgstr "Biztosan szeretnéd a készlet tételeket felszabadítani ebből a gyártási utasításból?" +msgstr "Biztosan szeretnéd a már lefoglalt készlet tételeket felszabadítani ebből a gyártási utasításból?" #: templates/js/translated/build.js:343 msgid "Unallocate Stock Items" @@ -7984,141 +8157,149 @@ msgstr "Hely nincs megadva" msgid "No active build outputs found" msgstr "Nem található aktív gyártási kimenet" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "Foglalás szerkesztése" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "Foglalás törlése" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "Vannak helyettesítő alkatrészek" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" -msgstr "Mennyiség per" +msgstr "Szükséges/db" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "Nincs elegendő" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "Van elegendő" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Lefoglalva" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "betöltés" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "Készlet rendelés" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Kiválasztott alkatrészek" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "Minden alkatrész lefoglalva" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "Minden kiválasztott alkatrész teljesen lefoglalva" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Készlet foglalás megerősítése" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "Készlet foglalása a gyártási utasításhoz" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "Nincs egyező készlethely" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "Nincs egyező készlet" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "Automatikus készlet foglalás" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "A készlet automatikusan lefoglalásra került ehhez a gyártási utasításhoz, a megadott feltételek szerint" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "Készlet tételek foglalása" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "Kiválaszt" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" -msgstr "Gyártási utasítás megkésett" +msgstr "Gyártás késésben van" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "Nincs felhasználói információ" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "Nincs információ" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "Nincs lefoglalt alkatrész ehhez" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "Nincs gyártói alkatrész" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "Sablon alkatrész" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "Gyártmány alkatrész" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "Nem található paraméter" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "Paraméter törlése" @@ -8290,7 +8471,7 @@ msgstr "Form hibák vannak" msgid "No results found" msgstr "Nincs eredmény" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "Keresés" @@ -8310,61 +8491,73 @@ msgstr "Mező név" msgid "Select Columns" msgstr "Oszlopok kiválasztása" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "IGEN" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NEM" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "Megjegyzések frissítve" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "Címkék nyomtatónak elküldve" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "Készlet tételek kiválasztása" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "Készlet tétel(eke)t ki kell választani a címkenyomtatás előtt" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "Nem található címke" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "Nem található címke a kiválasztott készlet tétel(ek)hez" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "Készlethely kiválasztása" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "Készlet hely(eke)t ki kell választani a címkenyomtatás előtt" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "Nem található címke a kiválasztott készlet hely(ek)hez" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "Alkatrész(eke)t ki kell választani a címkenyomtatás előtt" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "Nem található címke a kiválasztott alkatrész(ek)hez" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "Nyomtató kiválasztása" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "Exportálás PDF-be" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "kiválasztott készlet tételek" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "Címke választása" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "Címke sablon kiválasztása" @@ -8427,42 +8620,58 @@ msgstr "A kiszolgáló 400-as hibakódot adott vissza" msgid "Error requesting form data" msgstr "Form adat lekérése sikertelen" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" -msgstr "Cég azonosító" +msgstr "Cég ID" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" -msgstr "Készlet azonosító" +msgstr "Készlet ID" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" -msgstr "Hely azonosító" +msgstr "Hely ID" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" -msgstr "Gyártás azonosító" +msgstr "Gyártás ID" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" -msgstr "Rendelés azonosító" +msgstr "Rendelés ID" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" -msgstr "Szállítmány azonosító" +msgstr "Szállítmány ID" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" -msgstr "Kategória azonosító" +msgstr "Kategória ID" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" -msgstr "Gyártói alkatrész azonosító" +msgstr "Gyártói cikkszám" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" -msgstr "Beszállítói alkatrész azonosító" +msgstr "Beszállítói cikkszám" + +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "Megjelölés olvasatlanként" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "Megjelölés olvasottként" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "Nincs olvasatlan értesítés" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "Az értesítések itt fognak megjelenni" #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" @@ -8516,7 +8725,7 @@ msgstr "Sorozatszám hozzáadása" msgid "Quantity to receive" msgstr "Érkező mennyiség" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "Készlet állapota" @@ -8540,13 +8749,13 @@ msgstr "Bevételezés megerősítése" msgid "Receive Purchase Order Items" msgstr "Beszerzési rendelés tételeinek bevételezése" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "Nem található beszerzési rendelés" #: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 msgid "Order is overdue" -msgstr "Rendelés megkésett" +msgstr "Rendelés késésben" #: templates/js/translated/order.js:1074 templates/js/translated/order.js:2577 msgid "Duplicate Line Item" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "Összesen" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "Egységár" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "Teljes ár" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" -msgstr "Ez a sortétel megkésett" +msgstr "Ez a sortétel késésben van" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "Sortétel bevételezése" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "Készlet foglalások törlése" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "Vevőnek kiszállítva" @@ -8783,169 +8992,177 @@ msgstr "Parméterek másolása az eredeti alkatrészről" msgid "Parent part category" msgstr "Felsőbb szintű alkatrész kategória" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "Alkatrész módosítva" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "Alkatrész változat létrehozása" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "Értesítések kérése erre a tételre" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "Értesítések letiltva erre a tételre" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "Az alkatrészjegyzék jóváhagyása minden sortételt jóvá fog hagyni" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "Alkatrészjegyzék jóváhagyása" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "Alkatrészjegyzék jóvá lett hagyva" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "Alkatrészjegyzék másolása" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Követésre kötelezett alkatrész" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Virtuális alkatrész" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Értesítésre beállított alkatrész" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Értékesíthető alkatrész" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Nincs több változat" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Alkatrész kapcsolatok törlése" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "Alkatrész kapcsolatok törlése" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "Nincs alkatrész" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "Nincs kategória" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "Alacsony készlet" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "Nincs szabad" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "Követésre kötelezett alkatrész" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "Virtuális alkatrész" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "Értesítésre beállított alkatrész" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "Értékesíthető alkatrész" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Nincs több változat" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "Alkatrész kapcsolatok törlése" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "Alkatrész kapcsolatok törlése" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "Nincs alkatrész" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "Nincs szabad" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Nincs kategória" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "Megjelenítés listaként" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "Megjelenítés rácsnézetként" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "Megjelenítés fában" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "Értesítésre beállított kategória" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "Elérési út" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "Nincs a lekérdezéssel egyező teszt sablon" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "Ez a teszt a szülő alkatrészhez lett felvéve" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "Teszt eredmény sablon szerkesztése" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "Teszt eredmény sablon törlése" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "Nincs ${human_name} információ" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} szerkesztése" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} törlése" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "Aktuális készlet" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" -msgstr "" +msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "Ütemezett készlet mennyiség" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "Egységes ár" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "Egységes ár különbség" @@ -9019,6 +9236,14 @@ msgstr "Vevői rendelések kiválasztása" msgid "Sales Order(s) must be selected before printing report" msgstr "Vevői rendelés(eke)t ki kell választani a riport nyomtatás előtt" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "Eredmények összezárása" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "Eredmények eltávolítása" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "Készlet tétel sorszámozása" @@ -9031,344 +9256,328 @@ msgstr "Készlet sorozatszámozás megerősítése" msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "Új készlet hely" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "Ezt az alkatrészt nem lehet sorozatszámozni" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "Készlet tétel lemásolva" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "Készlet tétel létrehozva" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "Több készlet tétel létre lett hozva" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "Sorozatszám keresése" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "Sorozatszám megadása" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "Adj meg egy sorozatszámot" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "Nincs egyező sorozatszám" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "Több egyező eredmény is van" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "Készlet hozzárendelés jóváhagyása" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "Készlet vevőhöz rendelése" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "Figyelem: az összevonási művelet nem vonható vissza" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "Némi információ elveszik a készlet összevonás során" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "A készlettörténet törölve lesz az összevont tételeknél" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "Készlet összevonás megerősítése" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "Készlet tételek összevonása" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "Áthelyezés" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "Leltározás" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "Mennyiség" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "Kivesz" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "Hozzáad" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "Készlet mennyiség megadása" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "Ki kell választanod legalább egy rendelkezésre álló készlet tételt" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "SIKER" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "SIKERTELEN" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "NINCS EREDMÉNY" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "Teszt sikeres" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "Teszt eredmény hozzáadása" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "Nincs teszt eredmény" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "Teszt dátuma" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "Gyártásban" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "Beépítve készlet tételbe" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "Vevő rendeléshez hozzárendelve" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Nincs hely megadva" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "Készlet tétel gyártás alatt" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "Készlet tétel lejárt" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "Készlet tétel hamarosan lejár" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "Készlet tétel teljes egészében lefoglalva" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "Készlet tétel részben lefoglalva" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "Készlet tétel beépítve egy másikba" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "Készlet tétel elutasítva" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "Készlet tétel elveszett" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "Készlet tétel megsemmisült" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Kimerült" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "Leltár" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "Beszállítói alkatrész nincs megadva" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "Nincs a lekérdezésnek megfelelő készlet tétel" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "tételek" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "batch-ek" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "helyek" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "Ismeretlen hely" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "Készlet állapot beállítása" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "Státuszkód kiválasztása" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "Státuszkódot ki kell választani" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "Részletek" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "Alkatrész információ nem áll rendelkezésre" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "A hely már nem létezik" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "Beszerzési megrendelés már nem létezik" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "Vevő már nem létezik" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "A készlet tétel már nem létezik" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "Hozzáadva" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "Eltávolítva" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "Készlettörténet bejegyzés szerkesztése" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "Készlettörténet bejegyzés törlése" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "Nincsenek beépített tételek" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "Készlet tétel kiszedése" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "Másik tétel beépítése ebbe a készlet tételbe" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "A készlet tétel jelenleg elérhető készleten" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" -msgstr "A készlet tétel egyedi követésre kötelezett és nem tartozik másik tételhez" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" +msgstr "A készlet tétel még nem épült be egy másik tételbe" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "Válaszd ki a beépítendő alkatrészt" @@ -9399,12 +9608,12 @@ msgstr "Helyekkel együtt" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "Alkategóriákkal együtt" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "Értesítés beállítva" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "Sorozatszám" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "Batch kód" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "Aktív alkatrész" @@ -9515,64 +9724,88 @@ msgstr "Készlet tételek melyek hozzá vannak rendelve egy vevőhöz" msgid "Stock status" msgstr "Készlet állapota" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "Van batch kódja" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "Követett" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "Követett készlet tétel sorozatszámmal vagy batch kóddal" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "Van beszerzési ára" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "Beszerzési árral rendelkező készlet tételek megjelenítése" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "Lejárt készlet tételek megjelenítése" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "Hamarosan lejáró készlet tételek megjelenítése" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "Teszten megfelelt" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "Beépített tételekkel együtt" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "Gyártási állapot" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "Hozzám rendelt" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "Rendelés állapota" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "Kintlévő" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "Alkategóriákkal együtt" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "Van IPN-je" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" -msgstr "Van belső alkatrész azonosítója" +msgstr "Van belső cikkszáma" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "Aktív alkatrészek megjelenítése" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Felhasználható készlet" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "Készleten" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "Elérhető" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "Beszerezhető" @@ -9612,7 +9845,8 @@ msgstr "a" msgid "rows" msgstr "sorból," -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Keresés" @@ -9641,29 +9875,41 @@ msgstr "Oszlopok" msgid "All" msgstr "Összes" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Beszerzés" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Értékesítés" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "Értesítések megjelenítése" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "Új értesítések" + +#: templates/navbar.html:139 msgid "Logout" msgstr "Kijelentkezés" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "Bejelentkezés" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "Verzió információk" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "Inventree demo mód" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "Mentés" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "Összes értesítés és előzmény megjelenítése" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -9677,6 +9923,26 @@ msgstr "Sikeresen kijelentkeztél." msgid "Log in again" msgstr "Jelentkezz be újra" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "Teljes találatok megjelenítése" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "Keresőmező törlése" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "Eredmények szűrése" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "Keresés menü bezárása" + +#: templates/search.html:35 +msgid "No search results" +msgstr "Nincs találat" + #: templates/stats.html:9 msgid "Server" msgstr "Kiszolgáló" @@ -9719,7 +9985,7 @@ msgstr "Kiszolgáló állapota" #: templates/stats.html:55 msgid "Healthy" -msgstr "Normális" +msgstr "Rendben" #: templates/stats.html:57 msgid "Issues detected" @@ -9829,35 +10095,35 @@ msgstr "Jogosultságok" msgid "Important dates" msgstr "Fontos dátumok" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "Jogosultságok" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "Csoport" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "Nézet" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "Jogosultság tételek megtekintéséhez" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "Jogosultság tételek hozzáadásához" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "Módosítás" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "Jogosultság tételek szerkesztéséhez" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "Jogosultság tételek törléséhez" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 74d916fa43..72dbfc5629 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API endpoint tidak ditemukan" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Tidak ada tindakan yang ditentukan" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Aksi tidak ditemukan" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "" @@ -152,11 +152,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "" @@ -193,42 +194,42 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "" @@ -240,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:666 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:667 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:668 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Spanish (Mexican)" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "French" -msgstr "" - -#: InvenTree/settings.py:671 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Hungarian" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:674 -msgid "Japanese" -msgstr "" - #: InvenTree/settings.py:675 -msgid "Korean" +msgid "Czech" msgstr "" #: InvenTree/settings.py:676 -msgid "Dutch" +msgid "German" msgstr "" #: InvenTree/settings.py:677 -msgid "Norwegian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:678 -msgid "Polish" +msgid "English" msgstr "" #: InvenTree/settings.py:679 -msgid "Portugese" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:680 -msgid "Russian" +msgid "Spanish (Mexican)" msgstr "" #: InvenTree/settings.py:681 -msgid "Swedish" +msgid "Farsi / Persian" msgstr "" #: InvenTree/settings.py:682 -msgid "Thai" +msgid "French" msgstr "" #: InvenTree/settings.py:683 -msgid "Turkish" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:684 -msgid "Vietnamese" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:685 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "" @@ -399,14 +412,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "" @@ -445,91 +458,95 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -589,7 +606,7 @@ msgstr "" msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index b5d3bb9fb1..72c17281cb 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "Endpoint API non trovato" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Nessuna azione specificata" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" @@ -122,7 +122,7 @@ msgstr "File mancante" msgid "Missing external link" msgstr "Link esterno mancante" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Allegato" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Seleziona file da allegare" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Link" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -152,11 +152,12 @@ msgstr "Commento" msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Utente" @@ -193,42 +194,42 @@ msgstr "Errore nella rinominazione del file" msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Nome" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Descrizione" @@ -240,7 +241,7 @@ msgstr "Descrizione (opzionale)" msgid "parent" msgstr "genitore" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Deve essere un numero valido" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "Ungherese" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portoghese" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Cinese" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "Controlli di sistema InvenTree falliti" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "In attesa" @@ -399,14 +412,14 @@ msgstr "In attesa" msgid "Placed" msgstr "Inviato" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Completo" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Annullato" @@ -445,91 +458,95 @@ msgstr "Distrutto" msgid "Rejected" msgstr "Respinto" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Voce di tracciamento stock preesistente" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Elemento stock creato" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Elemento stock modificato" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Numero di serie assegnato" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Stock contato" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Stock aggiunto manualmente" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Stock rimosso manualmente" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Posizione cambiata" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Installato nell'assemblaggio" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Rimosso dall'assemblaggio" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Componente installato" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Elemento componente rimosso" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Diviso dall'elemento genitore" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Dividi elemento figlio" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Inviato al cliente" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Restituito dal cliente" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Genera l'output dell'ordine creato" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Build order output completato" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Ricevuto contro l'ordine di acquisto" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Produzione" @@ -589,7 +606,7 @@ msgstr "Imposta Password" msgid "Password fields must match" msgstr "Le password devono coincidere" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Informazioni sistema" @@ -654,11 +671,11 @@ msgstr "Ordine di Produzione" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Ordini di Produzione" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Riferimento" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Articolo" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Posizione Di Origine" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Data di creazione" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Data di completamento" @@ -805,7 +823,7 @@ msgstr "Data di completamento" msgid "completed by" msgstr "Completato da" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Rilasciato da" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Responsabile" @@ -826,11 +844,11 @@ msgstr "Responsabile" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Collegamento esterno" @@ -839,17 +857,17 @@ msgstr "Collegamento esterno" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Note" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "Articolo in giacenza selezionato non trovato nel BOM" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Produzione" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Origine giacenza articolo" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Quantità" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Installa in" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Codice Seriale" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Posizione" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Stato" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "Distinta base (Bom)" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Data scadenza" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "In ritardo" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Completato" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Ordini di Vendita" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Inviato da" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destinazione" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Posizione di destinazione non specificata" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Lotto" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Creato" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Nessuna data di destinazione impostata" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Build Completata" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Ordina articoli richiesti" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Ordine Articoli" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Azioni di stampa" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Stampa etichette" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Allegati" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Genera Note" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Modifica Note" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Assegnazione Completa" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Tutte le giacenze non tracciate sono state assegnate" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "{name.title()} File" msgid "Select {name} file to upload" msgstr "Seleziona il file {name} da caricare" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Valore impostazioni" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "Il valore specificato non è un opzione valida" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "Il valore deve essere un valore booleano" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "Il valore deve essere un intero" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "La stringa chiave deve essere univoca" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "Nessun gruppo" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "Riavvio richiesto" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "Nome Istanza InvenTree" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "Descrittore stringa per l'istanza del server" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "Utilizza nome istanza" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "Usa il nome dell'istanza nella barra del titolo" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Nome azienda" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "Nome interno dell'azienda" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "URL Base" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "URL di base per l'istanza del server" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Valuta predefinita" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Valuta predefinita" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Scarica dall'URL" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Consenti il download di immagini e file remoti da URL esterno" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Supporto Codice A Barre" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Abilita supporto scanner codici a barre" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "Schema di espressione regolare per l'articolo corrispondente IPN" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Consenti duplicati IPN" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Permetti a più articoli di condividere lo stesso IPN" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Permetti modifiche al part number interno (IPN)" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "Copia I Dati Della distinta base dell'articolo" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "Copia I Dati Parametro dell'articolo" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "Copia i dati dei parametri di default quando si duplica un articolo" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "Copia i dati di prova di default quando si duplica un articolo" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "Copia Template Parametri Categoria" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Template" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Assemblaggio" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Componente" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Acquistabile" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Vendibile" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Tracciabile" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtuale" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Gli articoli sono virtuali per impostazione predefinita" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "Mostra l'importazione nelle viste" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "Mostra la procedura guidata di importazione in alcune viste articoli" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Mostra il prezzo nei moduli" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "Mostra il prezzo dell'articolo in alcuni moduli" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "Mostra il prezzo nella BOM" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "Includi le informazioni sui prezzi nelle tabelle BOM" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "Crea giacenza iniziale" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "Crea giacenza iniziale sulla creazione articolo" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "Prezzo interno come BOM-Price" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Stampa di prova" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "Scadenza giacenza" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "Abilita funzionalità di scadenza della giacenza" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "Vendi giacenza scaduta" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "Consenti la vendita di stock scaduti" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" - -#: common/models.py:908 -msgid "days" -msgstr "giorni" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "Controllo della proprietà della giacenza" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:949 +msgid "Stock Expiry" +msgstr "Scadenza giacenza" + +#: common/models.py:950 +msgid "Enable stock expiry functionality" +msgstr "Abilita funzionalità di scadenza della giacenza" + +#: common/models.py:956 +msgid "Sell Expired Stock" +msgstr "Vendi giacenza scaduta" + +#: common/models.py:957 +msgid "Allow sale of expired stock" +msgstr "Consenti la vendita di stock scaduti" + +#: common/models.py:963 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:964 +msgid "Number of days stock items are considered stale before expiring" +msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" + +#: common/models.py:966 +msgid "days" +msgstr "giorni" + +#: common/models.py:971 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:972 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:978 +msgid "Stock Ownership Control" +msgstr "Controllo della proprietà della giacenza" + +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" +msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" + +#: common/models.py:985 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:986 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:991 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:996 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:997 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:1002 msgid "Purchase Order Reference Prefix" msgstr "Referenza ordine d'acquisto" -#: common/models.py:945 +#: common/models.py:1003 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:951 +#: common/models.py:1009 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:952 +#: common/models.py:1010 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:957 +#: common/models.py:1015 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:958 +#: common/models.py:1016 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:963 +#: common/models.py:1021 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:964 +#: common/models.py:1022 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:969 +#: common/models.py:1027 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:970 +#: common/models.py:1028 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:975 +#: common/models.py:1033 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:976 +#: common/models.py:1034 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:981 +#: common/models.py:1039 msgid "Mail twice" msgstr "" -#: common/models.py:982 +#: common/models.py:1040 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:987 +#: common/models.py:1045 msgid "Password twice" msgstr "" -#: common/models.py:988 +#: common/models.py:1046 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:993 +#: common/models.py:1051 msgid "Group on signup" msgstr "" -#: common/models.py:994 +#: common/models.py:1052 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:999 +#: common/models.py:1057 msgid "Enforce MFA" msgstr "" -#: common/models.py:1000 +#: common/models.py:1058 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1007 +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 msgid "Enable URL integration" msgstr "" -#: common/models.py:1008 +#: common/models.py:1073 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1014 +#: common/models.py:1079 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1015 +#: common/models.py:1080 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1021 +#: common/models.py:1086 msgid "Enable app integration" msgstr "" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" -msgstr "Visualizzazione dell'etichetta in linea" - -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "Visualizzazione dell'etichetta in linea" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "Risultati Dell'Anteprima Di Ricerca" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "Visualizzazione dell'etichetta in linea" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "Visualizzazione dell'etichetta in linea" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "Risultati Dell'Anteprima Di Ricerca" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "Prezzo" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Attivo" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Carica file" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Abbina Campi" @@ -2409,7 +2519,7 @@ msgstr "Articoli importati" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Passaggio Precedente" @@ -2477,7 +2587,7 @@ msgstr "Punto di contatto" msgid "Link to external company information" msgstr "Collegamento alle informazioni aziendali esterne" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Immagine" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Valuta" @@ -2514,8 +2625,8 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Articolo di base" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "Seleziona articolo" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Produttore" @@ -2538,11 +2649,11 @@ msgstr "Produttore" msgid "Select manufacturer" msgstr "Seleziona Produttore" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "Codice articolo produttore (MPN)" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "Descrizione articolo costruttore" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "Codice articolo produttore" @@ -2571,8 +2682,8 @@ msgstr "Nome parametro" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "Valore" @@ -2580,10 +2691,10 @@ msgstr "Valore" msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "Unità" @@ -2599,11 +2710,11 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Fornitore" @@ -2613,7 +2724,7 @@ msgstr "Seleziona fornitore" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Nota" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "costo base" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "Confezionamento" @@ -2658,7 +2769,7 @@ msgstr "Confezionamento" msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "multiplo" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "Scarica immagine dall'URL" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Cliente" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "Telefono" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "Carica immagine" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Articoli fornitore" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Crea nuovo fornitore" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Nuovo fornitore articolo" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "Opzioni" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Articoli ordinati" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Cancella articoli" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Cancella articoli" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Giacenza Fornitore" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Ordine di acquisto" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "Elimina articoli fornitore?" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati" @@ -2872,83 +2985,83 @@ msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati" msgid "Supplier List" msgstr "Elenco dei fornitori" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Produttori" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Articoli ordinati" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "Articolo interno" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Fornitori" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Elimina articolo fornitore" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Elimina" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametri" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "Nuovo Parametro" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "Elimina il parametro" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "Aggiungi parametro" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "Gli eventi selezionati verranno eliminati" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "Elimina Parametri" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "Articolo Fornitore" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "Ordini articoli fornitore" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "Ordine Articolo" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "Informazioni Prezzi" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "Aggiungi riduzione prezzo" @@ -3026,11 +3139,13 @@ msgstr "Aggiungi riduzione prezzo" msgid "No price break information found" msgstr "Nessuna informazione di riduzione di prezzo trovata" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "Elimina riduzione di prezzo" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Magazzino" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "Prezzo articolo del fornitore" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Prezzi" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Nuovo Produttore" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Clienti" @@ -3100,7 +3218,7 @@ msgstr "Clienti" msgid "New Customer" msgstr "Nuovo cliente" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Aziende" @@ -3108,24 +3226,24 @@ msgstr "Aziende" msgid "New Company" msgstr "Nuova Azienda" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Download Immagine" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Risposta non valida: {code}" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "Articolo Fornitore" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "Ricevere articoli" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "Seleziona l'articolo del fornitore" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Elimina riga" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "Specifica la posizione per lo stock iniziale" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Posizione Predefinita" @@ -4004,12 +4122,14 @@ msgstr "Posizione Predefinita" msgid "Total Stock" msgstr "Giacenze Totali" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "Disponibilità in magazzino" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "Ordinato" @@ -4041,14 +4161,14 @@ msgstr "Keywords predefinite" msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Categorie Articolo" @@ -4057,9 +4177,10 @@ msgstr "Categorie Articolo" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Articoli" @@ -4084,472 +4205,482 @@ msgstr "Il prossimo numero di serie disponibile è" msgid "Most recent serial number is" msgstr "Il numero di serie più recente è" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "È Template" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "Variante Di" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "Descrizione articolo" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Parole Chiave" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "Categoria" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Revisione" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Scorta Minima" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "Unità di conservazione delle scorte per quest'articolo" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "Note dell'articolo - supporta la formattazione Markdown" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "BOM checksum" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "Codice Articolo" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "Notifica di magazzino bassa" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "Percorso Categoria" msgid "Top level part category" msgstr "Categoria articolo di livello superiore" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Sottocategorie" @@ -4658,23 +4789,23 @@ msgstr "Esporta" msgid "Export Data" msgstr "Esporta Dati" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "Parametri articolo" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "Crea Categoria Articolo" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "Crea Articolo" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "Articoli correlati" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Distinta base" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "Fornitori articoli" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "Articoli correlati" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "Azioni Barcode" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostra QR Code" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Stampa Etichetta" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Azioni magazzino" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "Duplica articolo" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "Modifica articolo" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "Cancella articolo" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "L'articolo può essere acquistato da fornitori esterni" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "La parte può essere venduta ai clienti" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "Inattivo" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "In magazzino" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "Costo Totale" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "Ci sono %(count)s fornitori definiti per questo articolo. Se elimini que msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "Imposta categoria per i seguenti articoli" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "Nessuna giacenza" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "Database sconosciuto" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "Imposta categoria articolo" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "Imposta categoria per {n} articoli" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "Modifica Categoria Articoli" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "Elimina categoria" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "La Categoria articoli è stata eliminata" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "Crea Template Parametro Categoria" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "Modifica Modello Parametro Categoria" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "Elimina Modello Parametro Categoria" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "Data" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "Seriale" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -5747,228 +5857,232 @@ msgstr "Conferma la disinstallazione" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "Installato In" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "Scansiona nella posizione" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "Conta giacenza" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "Aggiungi giacenza" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "Rimuovi giacenza" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Trasferisci giacenza" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "pagina precedente" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "pagina successiva" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "Ultimo aggiornamento" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "Nessun inventario eseguito" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Nessuna posizione impostata" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "Articoli controllati" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "Azioni posizione" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Modifica la posizione" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "Elimina la posizione" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "Crea nuova posizione di magazzino" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Nuova Posizione" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "Posizione stock di livello superiore" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata." -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "Azioni di stampa" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Stampa etichette" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "Sei sicuro di voler eliminare questa posizione?" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "Modifica Posizione Giacenza" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Crea una nuova Posizione di Giacenza" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "Elimina Posizione di Giacenza" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "Risultati della Ricerca" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "Impostazioni Server" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "Impostazioni di accesso" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "Registrati" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "Nessun parametro di categoria trovato" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" msgstr "" -#: templates/InvenTree/settings/settings.html:231 -#: templates/InvenTree/settings/settings.html:330 +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "Impostazioni di ricerca" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "Modifica Password" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifica" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "Informazioni Versione InvenTree" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "Accedi" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "Password dimenticata?" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "Clicca qui per i dettagli di accesso" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "Aggiungi allegato" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "È necessario riavviare il server" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "Contatta l'amministratore per maggiori informazioni" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "Quantità richiesta" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Disponibile" @@ -7496,15 +7662,6 @@ msgstr "Disponibile" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "Versione di InvenTree" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "Il server remoto deve essere accessibile" msgid "Remote image must not exceed maximum allowable file size" msgstr "L'immagine remota non deve superare la dimensione massima consentita del file" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Controlla gli elementi in magazzino nella posizione" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Elemento in giacenza già in questa posizione" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Controlla Nella Posizione" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Il codice a barre non corrisponde a una posizione valida" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "Posizione non specificata" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Modifica allocazione magazzino" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Elimina posizione giacenza" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "Modifica Posizione" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "Rimuovi Posizione" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Seleziona Articoli" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "Specificare il quantitativo assegnato allo stock" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Conferma l'assegnazione della giacenza" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "Nessuna posizione di magazzino corrispondente" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "Modifica parametro" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "Elimina il parametro" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "Modifica parametro" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "Elimina Parametri" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "Ricerca" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "SÌ" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "NO" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "Nessuna etichetta trovata" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "Nessuna etichetta trovata che corrisponde agli elementi stock selezionati" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "Seleziona Posizioni Giacenza" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "Le allocazioni delle giacenze devono essere selezionate prima di stampare le etichette" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "Nessuna etichetta trovata che corrisponde alle posizioni di magazzino selezionate" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "Nessuna etichetta trovata che corrisponde agli elementi stock selezionati" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "elemento stock creato" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "Seleziona l'etichetta" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "Seleziona Modello Etichetta" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "ID azienda" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "ID Giacenza" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "ID Posizione" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "ID Ordine" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "Id Categoria" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "ID articolo produttore" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "Quantità da ricevere" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "Stato giacenza" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "Totale" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "Prezzo Unitario" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "Prezzo Totale" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "Elimina posizione giacenza" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "Spedito al cliente" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "Categoria articolo principale" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "Modifica l'articolo" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "Articolo modificato" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "Convalida la distinta dei materiali" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "Parte tracciabile" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "Parte virtuale" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "Parte sottoscritta" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "Parte vendibile" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Nessuna variante trovata" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "Elimina relazione tra i componenti" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "Nessun articolo trovato" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "Nessuna categoria" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "In esaurimento" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "Parte tracciabile" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "Parte virtuale" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "Parte sottoscritta" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "Parte vendibile" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Nessuna variante trovata" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "Elimina relazione tra i componenti" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "Nessun articolo trovato" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Nessuna categoria" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "Visualizza come elenco" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "Visualizza come griglia" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "Visualizza come struttura ad albero" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "Categoria sottoscritta" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "Percorso" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "Nessun modello di test corrispondente" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "Modificare il risultato del test" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "Cancellare il risultato del test" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "Modifica ${human_name}" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "Elimina ${human_name}" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "Prezzo Singolo" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "Posizione giacenza principale" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "Nuova posizione giacenza" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "Inserisci quantità iniziale per questo articolo in giacenza" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "Crea nuova allocazione magazzino" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "Creato più elementi stock" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "Trasferisci giacenza" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "Sposta" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "Conta giacenza" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "Conta" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "Rimuovi giacenza" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "Prendi" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "Elimina Stock" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "Specificare la quantità di magazzino" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "Devi selezionare almeno un articolo disponibile" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "PASS" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "FAIL" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "NESSUN RISULTATO" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "Aggiungi risultato test" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "Nessun risultato di prova trovato" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "In produzione" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "Installato nell'elemento stock" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "Assegnato all'ordine di vendita" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Nessuna giacenza impostata" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "L'articolo di magazzino è in produzione" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "Articolo stock assegnato al cliente" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "L'articolo stock è scaduto" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "Articolo in giacenza prossimo alla scadenza" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "L'elemento stock è stato installato in un altro articolo" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "L'articolo stock è stato rifiutato" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "Esaurito" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "Inventario" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "elementi" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "posizione" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "Posizione non definita" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "La posizione non esiste più" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "Aggiunto" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "Rimosso" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "Includi posizioni" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "Includi sottocategorie" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "Sottoscritto" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "Codice Lotto" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "Elementi attivi" @@ -9515,64 +9724,88 @@ msgstr "Mostra elementi che sono stati assegnati a un cliente" msgid "Stock status" msgstr "Stato magazzino" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "Ha il prezzo d'acquisto" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "Mostra gli articoli di magazzino che hanno un prezzo di acquisto impostato" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "Mostra gli elementi in giacenza scaduti" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "Mostra giacenza prossima alla scadenza" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "Stato Build" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "Stato dell'ordine" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "In Sospeso" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "Includi articoli nelle sottocategorie" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "Ha IPN" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "L'articolo possiede un part number interno" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "Visualizza articoli attivi" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" -msgstr "Disponibilità" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" +msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "Acquistabile" @@ -9612,7 +9845,8 @@ msgstr "di" msgid "rows" msgstr "righe" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "Cerca" @@ -9641,29 +9875,41 @@ msgstr "Colonne" msgid "All" msgstr "Tutti" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Acquista" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Vendi" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "Esci" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "Accedi" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "Informazioni Su InvenTree" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "Modalità demo InvenTree" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" #: templates/qr_code.html:11 msgid "QR data not provided" @@ -9677,6 +9923,26 @@ msgstr "Sei stato disconnesso con successo." msgid "Log in again" msgstr "Accedi di nuovo" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "Server" @@ -9829,35 +10095,35 @@ msgstr "Permessi" msgid "Important dates" msgstr "Date Importanti" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "Gruppo" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "Visualizza" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "Modificare" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 94ddf8753c..e6cf83d277 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "APIエンドポイントが見つかりません" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "アクションが指定されていません" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" @@ -70,23 +70,23 @@ msgstr "カテゴリの選択" #: InvenTree/forms.py:236 msgid "Email (again)" -msgstr "" +msgstr "メールアドレス(確認用)" #: InvenTree/forms.py:240 msgid "Email address confirmation" -msgstr "" +msgstr "メールアドレスの確認" #: InvenTree/forms.py:260 msgid "You must type the same email each time." -msgstr "" +msgstr "毎回同じメールアドレスを入力する必要があります。" #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "重複したシリアル番号: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "数量コードが無効です" @@ -103,7 +103,7 @@ msgstr "無効なグループ: {g}" #: InvenTree/helpers.py:518 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "{group} は無効なグループか、存在しません。" #: InvenTree/helpers.py:524 msgid "No serial numbers found" @@ -116,13 +116,13 @@ msgstr "" #: InvenTree/models.py:185 msgid "Missing file" -msgstr "" +msgstr "ファイルがありません" #: InvenTree/models.py:186 msgid "Missing external link" -msgstr "" +msgstr "外部リンクが見つかりません。" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "添付ファイル" @@ -132,17 +132,17 @@ msgid "Select file to attach" msgstr "添付ファイルを選択" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" -msgstr "" +msgstr "リンク" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" -msgstr "" +msgstr "外部 サイト へのリンク" #: InvenTree/models.py:208 templates/js/translated/attachment.js:163 msgid "Comment" @@ -152,11 +152,12 @@ msgstr "コメント:" msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "ユーザー" @@ -166,69 +167,69 @@ msgstr "アップロード日時" #: InvenTree/models.py:241 msgid "Filename must not be empty" -msgstr "" +msgstr "ファイル名は空欄にできません" #: InvenTree/models.py:264 msgid "Invalid attachment directory" -msgstr "" +msgstr "添付ファイルのディレクトリが正しくありません" #: InvenTree/models.py:274 #, python-brace-format msgid "Filename contains illegal character '{c}'" -msgstr "" +msgstr "ファイル名に無効な文字'{c}'が含まれています" #: InvenTree/models.py:277 msgid "Filename missing extension" -msgstr "" +msgstr "ファイル名に拡張子がありません" #: InvenTree/models.py:284 msgid "Attachment with this filename already exists" -msgstr "" +msgstr "この名前の貼付ファイルは既に存在します" #: InvenTree/models.py:291 msgid "Error renaming file" -msgstr "" +msgstr "ファイル名の変更に失敗しました" #: InvenTree/models.py:326 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "お名前" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "説明" @@ -240,143 +241,155 @@ msgstr "説明 (オプション)" msgid "parent" msgstr "親" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" #: InvenTree/serializers.py:299 msgid "Filename" -msgstr "" +msgstr "ファイル名" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "無効な値です。" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "データファイル" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "アップロードするファイルを選択" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "サポートされていないファイル形式" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "ファイルサイズが大きすぎます" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "ファイルに列が見つかりません" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "ファイルにデータ行がみつかりません" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "データが入力されていません" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "データ列が指定されていません" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "必須の列がありません: {name}" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" - -#: InvenTree/settings.py:665 -msgid "German" -msgstr "ドイツ語" - -#: InvenTree/settings.py:666 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:667 -msgid "English" -msgstr "英語" - -#: InvenTree/settings.py:668 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Spanish (Mexican)" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "French" -msgstr "フランス語" - -#: InvenTree/settings.py:671 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Hungarian" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:674 -msgid "Japanese" -msgstr "" +msgstr "{col} 列が重複しています。" #: InvenTree/settings.py:675 -msgid "Korean" +msgid "Czech" msgstr "" #: InvenTree/settings.py:676 -msgid "Dutch" -msgstr "" +msgid "German" +msgstr "ドイツ語" #: InvenTree/settings.py:677 -msgid "Norwegian" -msgstr "" +msgid "Greek" +msgstr "ギリシャ語" #: InvenTree/settings.py:678 -msgid "Polish" -msgstr "ポーランド語" +msgid "English" +msgstr "英語" #: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "" +msgid "Spanish" +msgstr "スペイン語" #: InvenTree/settings.py:680 -msgid "Russian" -msgstr "" +msgid "Spanish (Mexican)" +msgstr "スペイン語(メキシコ)" #: InvenTree/settings.py:681 -msgid "Swedish" +msgid "Farsi / Persian" msgstr "" #: InvenTree/settings.py:682 -msgid "Thai" -msgstr "" +msgid "French" +msgstr "フランス語" #: InvenTree/settings.py:683 +msgid "Hebrew" +msgstr "ヘブライ語" + +#: InvenTree/settings.py:684 +msgid "Hungarian" +msgstr "ハンガリー語" + +#: InvenTree/settings.py:685 +msgid "Italian" +msgstr "イタリア語" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "日本語" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "韓国語" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "オランダ語" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "ノルウェー語" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "ポーランド語" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "ロシア語" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "スウェーデン語" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "タイ語" + +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" -msgstr "" +msgstr "ベトナム語" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" -msgstr "" +msgstr "中国語" #: InvenTree/status.py:110 msgid "Background worker check failed" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree システムのヘルスチェックに失敗しました" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "処理待ち" @@ -399,14 +412,14 @@ msgstr "処理待ち" msgid "Placed" msgstr "設置済" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "完了" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "キャンセル済" @@ -439,99 +452,103 @@ msgstr "破損" #: InvenTree/status_codes.py:186 msgid "Destroyed" -msgstr "" +msgstr "破壊されました" #: InvenTree/status_codes.py:188 msgid "Rejected" msgstr "却下済み" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 -msgid "Stock item created" -msgstr "" - -#: InvenTree/status_codes.py:277 -msgid "Edited stock item" -msgstr "" - #: InvenTree/status_codes.py:278 -msgid "Assigned serial number" -msgstr "" +msgid "Stock item created" +msgstr "在庫商品を作成しました" #: InvenTree/status_codes.py:280 -msgid "Stock counted" -msgstr "" +msgid "Edited stock item" +msgstr "在庫商品編集済み" #: InvenTree/status_codes.py:281 -msgid "Stock manually added" -msgstr "" +msgid "Assigned serial number" +msgstr "割り当てられたシリアル番号" -#: InvenTree/status_codes.py:282 -msgid "Stock manually removed" -msgstr "" +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "在庫数" #: InvenTree/status_codes.py:284 -msgid "Location changed" -msgstr "" +msgid "Stock manually added" +msgstr "手動在庫追加が完了しました" -#: InvenTree/status_codes.py:286 -msgid "Installed into assembly" -msgstr "" +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "手動在庫削除が完了しました" #: InvenTree/status_codes.py:287 -msgid "Removed from assembly" -msgstr "" +msgid "Location changed" +msgstr "ロケーションが変更されました" #: InvenTree/status_codes.py:289 -msgid "Installed component item" -msgstr "" +msgid "Installed into assembly" +msgstr "アセンブリへインストールしました" #: InvenTree/status_codes.py:290 -msgid "Removed component item" -msgstr "" +msgid "Removed from assembly" +msgstr "アセンブリから削除しました" #: InvenTree/status_codes.py:292 -msgid "Split from parent item" -msgstr "" +msgid "Installed component item" +msgstr "インストール済みのコンポーネント項目" #: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "コンポーネント項目を削除しました" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "親アイテムから分割する" + +#: InvenTree/status_codes.py:296 msgid "Split child item" -msgstr "" +msgstr "子項目を分割" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" -msgstr "" - -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 -msgid "Sent to customer" -msgstr "" - -#: InvenTree/status_codes.py:298 -msgid "Returned from customer" -msgstr "" +msgstr "商品在庫をマージしました" #: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 +msgid "Sent to customer" +msgstr "顧客に送信されました" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "顧客からの返品" + +#: InvenTree/status_codes.py:305 msgid "Build order output created" -msgstr "" +msgstr "組立注文の出力が作成されました" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" -msgstr "" +msgstr "組立注文の出力が完了しました" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" -msgstr "" +msgstr "生産" #: InvenTree/validators.py:25 msgid "Not a valid currency code" @@ -555,7 +572,7 @@ msgstr "" #: InvenTree/validators.py:116 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "名前の一部に不正な文字が使用されています({x})" #: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" @@ -571,7 +588,7 @@ msgstr "" #: InvenTree/views.py:538 msgid "Delete Item" -msgstr "" +msgstr "項目を削除" #: InvenTree/views.py:587 msgid "Check box to confirm item deletion" @@ -579,19 +596,19 @@ msgstr "" #: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" -msgstr "" +msgstr "ユーザー情報を編集" #: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" -msgstr "" +msgstr "パスワードを設定" #: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" -msgstr "" +msgstr "システム情報" #: barcodes/api.py:55 barcodes/api.py:156 msgid "Must provide barcode_data parameter" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "パーツ" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,10 +801,10 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" -msgstr "" +msgstr "作成日時" #: build/models.py:298 order/models.py:585 msgid "Target completion date" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,19 +857,19 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" -msgstr "" +msgstr "メモ" #: build/models.py:337 msgid "Extra build notes" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "パーツを割り当てるためにビルドする" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" -msgstr "" +msgstr "数量" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,14 +1075,14 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" -msgstr "" +msgstr "ステータス" #: build/serializers.py:434 msgid "Accept Unallocated" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "注文必須パーツ" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "パーツの注文" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1529,7 +1551,7 @@ msgstr "" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "ファイル" #: common/forms.py:35 msgid "Select file to upload" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "テンプレート" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "アセンブリ" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "コンポーネント" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "追跡可能" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "デバッグモード" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" -msgstr "" +msgstr "メッセージ ID:" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,14 +2519,14 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "URL" #: company/forms.py:25 part/forms.py:47 msgid "Image URL" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "メーカー・パーツ" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "サプライヤー・パーツ" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "新しいサプライヤー・パーツを作成" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "パーツの注文" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "メーカー・パーツ" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "パーツの注文" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "メーカー・パーツの編集" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "メーカー・パーツを削除" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "内部パーツ" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "パーツ" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 9542861af3..1fa2be721a 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "첨부파일" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "첨부할 파일을 선택하세요" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "링크" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "외부 URL로 링크" @@ -152,11 +152,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "사용자" @@ -193,42 +194,42 @@ msgstr "파일 이름 바꾸기 오류" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "이름" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "설명" @@ -240,7 +241,7 @@ msgstr "설명 (선택 사항)" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "유효한 숫자여야 합니다" @@ -266,7 +267,7 @@ msgstr "" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "파일이 너무 큽니다" #: InvenTree/serializers.py:407 msgid "No columns found in file" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "체코어" + +#: InvenTree/settings.py:676 msgid "German" msgstr "독일어" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "그리스어" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "영어" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "스페인어" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "스페인어 (멕시코)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "파르시어/페르시아어" + +#: InvenTree/settings.py:682 msgid "French" msgstr "프랑스어" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "히브리어" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "헝가리어" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "이탈리아어" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "일본어" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "한국어" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "네덜란드어" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "노르웨이어" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "폴란드어" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "포르투갈어" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "러시아어" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "스웨덴어" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "태국어" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "터키어" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "베트남어" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "중국어" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "" @@ -399,14 +412,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "취소됨" @@ -445,91 +458,95 @@ msgstr "파괴됨" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -583,13 +600,13 @@ msgstr "사용자 정보 수정" #: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" -msgstr "" +msgstr "비밀번호 설정" #: InvenTree/views.py:632 msgid "Password fields must match" -msgstr "" +msgstr "비밀번호가 일치해야 합니다" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "시스템 정보" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "외부 링크" @@ -839,17 +857,17 @@ msgstr "외부 링크" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "수량" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "일련번호" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "위치" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "상태" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "{name.title()} 파일" msgid "Select {name} file to upload" msgstr "업로드할 {name} 파일을 선택하세요" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "재시작 필요" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "회사명" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "기본 통화" - -#: common/models.py:669 -msgid "Default currency" -msgstr "기본 통화" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "URL에서 다운로드" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "바코드 지원" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "회사명" + +#: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "기본 통화" + +#: common/models.py:721 +msgid "Default currency" +msgstr "기본 통화" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "URL에서 다운로드" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "바코드 지원" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "구입 가능" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "판매 가능" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "디버그 모드" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "페이지 크기" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "PDF 보고서 기본 페이지 크기" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" -msgstr "SSO 활성화" +msgid "Stock Stale Time" +msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" -msgstr "로그인 페이지에서 SSO 활성화" - -#: common/models.py:969 -msgid "Email required" -msgstr "이메일 필요" - -#: common/models.py:970 -msgid "Require user to supply mail on signup" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:981 -msgid "Mail twice" -msgstr "두 번 보내기" - -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:1009 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 +msgid "Enable SSO" +msgstr "SSO 활성화" + +#: common/models.py:1022 +msgid "Enable SSO on the login pages" +msgstr "로그인 페이지에서 SSO 활성화" + +#: common/models.py:1027 +msgid "Email required" +msgstr "이메일 필요" + +#: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "두 번 보내기" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 msgid "Enable app integration" msgstr "" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "파일 업로드" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "이미지" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "URL에서 이미지 다운로드" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "고객" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "전화번호" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "이미지 업로드" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "삭제" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "신규 고객" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "새 회사" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "이미지 다운로드" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "경고" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "데이터" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "부품 명세서" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR 코드 보기" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "일련번호 검색" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "일련번호" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "일련번호가 이미 존재합니다" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "페이지를 찾을 수 없습니다." -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "내부 서버 오류" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "메시지" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "서버 설정" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "로그인 설정" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "설정" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "관리자" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "작성자" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "버전" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "메시지" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "홈페이지" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6969,10 +7137,11 @@ msgstr "" #: templates/account/password_reset_from_key.html:4 #: templates/account/password_reset_from_key.html:7 msgid "Change Password" -msgstr "" +msgstr "비밀번호 변경" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "홈 페이지 설정" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "InvenTree 버전 정보" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "로그인" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7340,7 +7505,7 @@ msgstr "" #: templates/account/password_reset.html:27 templates/account/signup.html:36 msgid "This function is currently disabled. Please contact an administrator." -msgstr "" +msgstr "이 기능은 활성화되지 않았습니다. 관리자에게 연락하세요." #: templates/account/password_reset_from_key.html:7 msgid "Bad Token" @@ -7449,15 +7614,15 @@ msgstr "링크 추가" msgid "Add Attachment" msgstr "첨부파일 추가" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "서버 재시작 필요" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "InvenTree 버전" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "오류 408: 시간 초과" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "선택" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "예" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "아니오" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "단가" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "부품 명세서 복사" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "일련번호 찾기" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "일련번호를 입력하세요" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "일련번호를 입력하세요" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "일치하는 일련번호가 없습니다" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "일련번호" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index ac36f72056..134b176b93 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API eindpunt niet gevonden" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Geen actie gespecificeerd" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" @@ -83,10 +83,10 @@ msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Duplicaat serienummer: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveeldheid ingevoerd" @@ -103,7 +103,7 @@ msgstr "Ongeldige groep: {g}" #: InvenTree/helpers.py:518 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "Ongeldige/geen groep {group}" #: InvenTree/helpers.py:524 msgid "No serial numbers found" @@ -122,7 +122,7 @@ msgstr "Ontbrekend bestand" msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Bijlage" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Link" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -152,11 +152,12 @@ msgstr "Opmerking" msgid "File comment" msgstr "Bijlage opmerking" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Gebruiker" @@ -193,42 +194,42 @@ msgstr "Fout bij hernoemen bestand" msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Naam" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Omschrijving" @@ -240,7 +241,7 @@ msgstr "Omschrijving (optioneel)" msgid "parent" msgstr "overkoepelend" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" @@ -250,131 +251,143 @@ msgstr "Bestandsnaam" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Ongeldige waarde" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Data bestand" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Selecteer een bestand om te uploaden" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Niet ondersteund bestandstype" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Bestand is te groot" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Geen kolommen gevonden in het bestand" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Geen data rijen gevonden in dit bestand" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Geen data rijen opgegeven" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Geen gegevenskolommen opgegeven" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Verplichte kolom ontbreekt: '{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" +msgstr "Dubbele kolom: '{col}'" + +#: InvenTree/settings.py:675 +msgid "Czech" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:676 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "Hongaars" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portugees" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Chinees" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "Inventree gezondsheidscheck faalt" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Bezig" @@ -399,14 +412,14 @@ msgstr "Bezig" msgid "Placed" msgstr "Geplaatst" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Voltooid" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Geannuleerd" @@ -445,91 +458,95 @@ msgstr "Verwoest" msgid "Rejected" msgstr "Afgewezen" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Verouderde trackingscode" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Voorraaditem gemaakt" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Bewerken voorraaditem" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Serienummer toegewezen" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Voorraad geteld" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Voorraad handmatig toegevoegd" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Voorraad handmatig verwijderd" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Locatie veranderd" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Gemonteerd" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Gedemonteerd" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Gemonteerd item" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Gedemonteerd item" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Splits van bovenliggend item" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Splits onderliggende item" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" +msgstr "Samengevoegde stock items" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Naar klant verzonden" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Geretourneerd door klant" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Product aangemaakt" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Product voltooid" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" -msgstr "" +msgstr "Verbruikt door bouwopdracht" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Ontvangen tegen inkoopopdracht" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Productie" @@ -563,7 +580,7 @@ msgstr "Overschrijdingswaarde mag niet negatief zijn" #: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "Dekking mag niet groter zijn dan 100%" #: InvenTree/validators.py:162 msgid "Invalid value for overage" @@ -589,7 +606,7 @@ msgstr "Wachtwoord instellen" msgid "Password fields must match" msgstr "Wachtwoordvelden komen niet overeen" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Systeeminformatie" @@ -619,11 +636,11 @@ msgstr "" #: barcodes/api.py:201 msgid "Barcode already matches Stock Location" -msgstr "" +msgstr "Barcode komt al overeen met vooraad locatie" #: barcodes/api.py:205 msgid "Barcode already matches Part" -msgstr "" +msgstr "Barcode komt al overeen met onderdeel" #: barcodes/api.py:211 barcodes/api.py:223 msgid "Barcode hash already matches Stock Item" @@ -654,11 +671,11 @@ msgstr "Productie-opdracht" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Productie-opdrachten" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Productie-opdracht referentie" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Referentie" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Korte beschrijving van de build" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Bovenliggende bouw" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Productie-opdracht waar dit product aan is toegewezen" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "Productie-opdracht waar dit product aan is toegewezen" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Onderdeel" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar dit product aan is toegewezen" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Bron Locatie" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Bouwstatuscode" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Aanmaakdatum" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -805,20 +823,20 @@ msgstr "Opleveringsdatum" msgid "completed by" msgstr "voltooid door" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" -msgstr "" +msgstr "Uitgegeven door" #: build/models.py:317 msgid "User who issued this build order" msgstr "Gebruiker die de productie-opdracht heeft gegeven" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Verantwoordelijke" @@ -826,11 +844,11 @@ msgstr "Verantwoordelijke" msgid "User responsible for this build order" msgstr "Gebruiker verantwoordelijk voor deze productie-opdracht" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Externe Link" @@ -839,17 +857,17 @@ msgstr "Externe Link" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Opmerkingen" @@ -869,69 +887,69 @@ msgstr "Bouwuitvoer is al voltooid" msgid "Build output does not match Build Order" msgstr "Product komt niet overeen met de productie-opdracht" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" -msgstr "" +msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" -msgstr "" +msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "Toewijzingsaantal moet groter zijn dan nul" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" -msgstr "" +msgstr "Geselecteerd voorraadartikel niet gevonden in stuklijst" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Product" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Bouw om onderdelen toe te wijzen" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Bron voorraadartikel" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Aantal" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid te alloceren aan bouw" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor build-output" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Serienummers" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Locatie" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Status" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productie-opdracht" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Streefdatum" @@ -1250,33 +1268,33 @@ msgstr "Deze bouw was verwacht op %(target)s" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "Achterstallig" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Voltooid" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Verkooporder" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Uitgegeven door" @@ -1294,184 +1312,188 @@ msgstr "Productie-opdracht kan niet worden voltooid omdat er onvoltooide product msgid "Are you sure you wish to cancel this build?" msgstr "Weet je zeker dat je de bouw wilt annuleren?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Build details" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Voorraadbron" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Bestemming" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Bestemmingslocatie niet opgegeven" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Toegewezen onderdelen" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Batch" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Gecreëerd" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Geen doeldatum ingesteld" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Voorraad toewijzen aan Product" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Niet toegewezen voorraad" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Niet toegewezen voorraad" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Onderdelen bestellen" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Geselecteerde items toewijzen" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Afdrukacties" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Labels afdrukken" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bijlagen" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Bouw notities" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Notities Bewerken" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "Kies {name} bestand om te uploaden" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Waarde van de instelling" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "Gekozen waarde is geen geldige optie" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "Waarde moet een booleaanse waarde zijn" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "Waarde moet een geheel getal zijn" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "Sleutelreeks moet uniek zijn" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "Inventree Instantie Naam" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "String-beschrijving voor de server instantie" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "Gebruik de instantie naam" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "Gebruik de naam van de instantie in de titelbalk" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Bedrijfsnaam" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "Interne bedrijfsnaam" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "Basis URL" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "Basis URL voor serverinstantie" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Standaard valuta" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Standaard valuta" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Download van URL" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Barcode ondersteuning" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Barcodescanner ondersteuning inschakelen" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguliere expressiepatroon voor het corresponderen van deel IPN" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Dubbele IPN toestaan" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Bewerken IPN toestaan" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Samenstelling" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere delen worden samengesteld" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" -msgstr "" +msgstr "Koopbaar" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" -msgstr "" +msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" -msgstr "" +msgstr "Verkoopbaar" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" -msgstr "" +msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" -msgstr "" +msgstr "Volgbaar" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" -msgstr "" +msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" -msgstr "" +msgstr "Virtueel" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" -msgstr "" +msgstr "Onderdelen zijn standaard virtueel" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" -msgstr "" +msgstr "Toon Import in weergaven" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" -msgstr "" +msgstr "Toon Prijs in Formulieren" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" -msgstr "" +msgstr "Toon onderdeel prijs in sommige formulieren" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" -msgstr "" +msgstr "Toon prijsgeschiedenis" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" -msgstr "" +msgstr "Toon historische prijzen voor onderdeel" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" -msgstr "" +msgstr "Verwante onderdelen tonen" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" -msgstr "" +msgstr "Verwante onderdelen voor een onderdeel tonen" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" -msgstr "" +msgstr "Eerste voorraad aanmaken" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" -msgstr "" +msgstr "Aanmaken eerste voorraad bij het maken van onderdeel" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "Interne prijzen" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" -msgstr "" +msgstr "Activeer rapporteringen" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" -msgstr "" +msgstr "Activeer het genereren van rapporten" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" -msgstr "" +msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" -msgstr "" +msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Testrapport" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" -msgstr "" +msgstr "Activeer het genereren van testrapporten" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "Verlopen voorraad" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "Verlopen voorraad functionaliteit inschakelen" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "Verkoop verlopen voorraad" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "Verkoop verlopen voorraad toestaan" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "dagen" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" -msgstr "" +#: common/models.py:949 +msgid "Stock Expiry" +msgstr "Verlopen voorraad" -#: common/models.py:951 -msgid "Enable password forgot" -msgstr "" +#: common/models.py:950 +msgid "Enable stock expiry functionality" +msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" -msgstr "" +#: common/models.py:956 +msgid "Sell Expired Stock" +msgstr "Verkoop verlopen voorraad" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" -msgstr "" +msgid "Allow sale of expired stock" +msgstr "Verkoop verlopen voorraad toestaan" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" +msgstr "dagen" + +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" -msgstr "" - -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2459,15 +2569,15 @@ msgstr "" #: company/models.py:125 company/templates/company/company_base.html:129 #: templates/InvenTree/settings/user.html:48 msgid "Email" -msgstr "" +msgstr "Email" #: company/models.py:125 msgid "Contact email address" -msgstr "" +msgstr "Contact e-mailadres" #: company/models.py:128 company/templates/company/company_base.html:136 msgid "Contact" -msgstr "" +msgstr "Contact" #: company/models.py:129 msgid "Point of contact" @@ -2475,11 +2585,11 @@ msgstr "" #: company/models.py:131 msgid "Link to external company information" -msgstr "" +msgstr "Link naar externe bedrijfsinformatie" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" -msgstr "" +msgstr "Afbeelding" #: company/models.py:144 msgid "is customer" @@ -2491,7 +2601,7 @@ msgstr "" #: company/models.py:146 msgid "is supplier" -msgstr "" +msgstr "is leverancier" #: company/models.py:146 msgid "Do you purchase items from this company?" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Fabriceert dit bedrijf onderdelen?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Fabrikant" @@ -2538,11 +2649,11 @@ msgstr "Fabrikant" msgid "Select manufacturer" msgstr "Fabrikant selecteren" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "MPN" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "Omschrijving onderdeel fabrikant" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" @@ -2571,21 +2682,21 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" -msgstr "" +msgstr "Waarde" #: company/models.py:423 msgid "Parameter value" -msgstr "" +msgstr "Parameterwaarde" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" -msgstr "" +msgstr "Eenheden" #: company/models.py:430 msgid "Parameter units" @@ -2599,21 +2710,21 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" -msgstr "" +msgstr "Leverancier" #: company/models.py:546 templates/js/translated/part.js:217 msgid "Select supplier" -msgstr "" +msgstr "Leverancier selecteren" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" -msgstr "" +msgstr "Opmerking" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" -msgstr "" +msgstr "basisprijs" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" -msgstr "" +msgstr "Minimale kosten (bijv. voorraadkosten)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Fabrikant onderdelen" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Maak nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "Nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Fabrikanten" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "Fabrikant onderdeel bewerken" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "Fabrikant onderdeel verwijderen" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Nieuwe fabrikant" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Standaard locatie" @@ -4004,12 +4122,14 @@ msgstr "Standaard locatie" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "U heeft geen toestemming om de stuklijst te bewerken." @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "Toewijzingen verkoopopdracht" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "Nieuw stuklijstitem" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "Samenstellingen" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "Productie-opdracht toewijzingen" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "Fabrikanten" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "Fabrikant onderdeel verwijderen" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-code weergeven" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Label afdrukken" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Voorraad acties" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "Onderdeel kan vanuit andere delen worden samengesteld" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "Onderdeel kan gebruikt worden voor samenstellingen" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Serienummer" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "Scan naar locatie" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "Voorraad tellen" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "Voorraad overzetten" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Geen Locatie ingesteld" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "Geen fabrikant geselecteerd" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "Locatie acties" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Bewerk locatie" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "Verwijder locatie" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Nieuwe locatie" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "Afdrukacties" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Labels afdrukken" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "Bewerk voorraadlocatie" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "Verwijder voorraadlocatie" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Beschikbaar" @@ -7496,15 +7662,6 @@ msgstr "Beschikbaar" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "Je ontvangt deze e-mail omdat je bent geabonneerd op notificaties van dit onderdeel " -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "Locatie is niet opgegeven" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Voorraadtoewijzing bewerken" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Voorraadtoewijzing verwijderen" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Toegewezen" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "Voorraad toewijzen" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Onderdelen selecteren" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "Er moet op zijn minst één onderdeel toegewezen worden" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Bevestig de voorraadtoewijzing" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "Geen fabricage onderdelen gevonden" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "Samengesteld onderdeel" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "Onderdeelnummer fabrikant" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Geen voorraadlocatie ingesteld" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Inkoop" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Verkoop" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 47ec903f37..95f828417d 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API endepunkt ikke funnet" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Ingen handling spesifisert" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" @@ -83,10 +83,10 @@ msgstr "Du må angi samme e-post hver gang." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Dupliser serie: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" @@ -122,7 +122,7 @@ msgstr "Fil mangler" msgid "Missing external link" msgstr "Mangler eksternlenke" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Vedlegg" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Velg fil å legge ved" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Lenke" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Lenke til ekstern URL" @@ -152,11 +152,12 @@ msgstr "Kommenter" msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Bruker" @@ -193,42 +194,42 @@ msgstr "Feil ved endring av navn" msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Navn" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Beskrivelse" @@ -240,7 +241,7 @@ msgstr "Beskrivelse (valgfritt)" msgid "parent" msgstr "overkategori" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Nummer må være gyldig" @@ -250,131 +251,143 @@ msgstr "Filnavn" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Ugyldig verdi" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Data fil" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Velg datafil for opplasting" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Filtypen støttes ikke" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Filen er for stor" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Ingen kolonner funnet i filen" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Ingen datalader funnet i fil" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Ingen datalader oppgitt" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Ingen datakolonner angitt" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Mangler påkrevd kolonne: '{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "Dupliser kolonne: '{col}'" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "Tsjekkisk" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "Farsi / Persisk" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "Ungarsk" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portugesisk" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "Portugisisk" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "Portugisisk (Brasilian)" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Kinesisk" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "Helsekontroll av IvenTree system mislyktes" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Ventende" @@ -399,14 +412,14 @@ msgstr "Ventende" msgid "Placed" msgstr "Plassert" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Fullført" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Kansellert" @@ -445,91 +458,95 @@ msgstr "Ødelagt" msgid "Rejected" msgstr "Avvist" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Legacy stock sporingsoppføring" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Lagevare opprettet" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Redigerte lagervare" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Tildelt serienummer" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Lager tellet" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Lager manuelt lagt til" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Lager manuelt fjernet" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Posisjon endret" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Installert i montering" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Fjernet fra montering" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Installert komponentelement" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Fjernet komponentelement" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Delt fra overordnet element" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Delt fra underelement" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "Sammenslått lagervare" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "Konvertert til variant" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Sendt til kunde" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Returnert av kunde" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Build ordreutgang opprettet" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Build ordreutg fullført" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Mottatt mot innkjøpsordre" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Produksjon" @@ -589,7 +606,7 @@ msgstr "Velg passord" msgid "Password fields must match" msgstr "Passordfeltene må samsvare" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Systeminformasjon" @@ -654,11 +671,11 @@ msgstr "Build ordre" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Build Ordre" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Bygg ordrereferanse" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Referanse" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Kort beskrivelse av build" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet build" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Build order som denne build er tildelt til" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "Build order som denne build er tildelt til" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Del" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Salgorder som denne build er tildelt til" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Kilde plassering" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Byggstatuskode" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Batch kode" @@ -783,8 +801,8 @@ msgstr "Batch kode" msgid "Batch code for this build output" msgstr "Batch kode for denne build output" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Opprettelsesdato" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Fullført dato" @@ -805,7 +823,7 @@ msgstr "Fullført dato" msgid "completed by" msgstr "fullført av" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Utstedt av" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "Brukeren som utstede denne prosjekt order" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Ansvarlig" @@ -826,11 +844,11 @@ msgstr "Ansvarlig" msgid "User responsible for this build order" msgstr "Bruker ansvarlig for denne prosjekt order" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Ekstern link" @@ -839,17 +857,17 @@ msgstr "Ekstern link" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Notater" @@ -869,69 +887,69 @@ msgstr "Prosjekt utdata er allerede utfylt" msgid "Build output does not match Build Order" msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er markert som sporbar" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelige lager mengde ({a})" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "Lagervare er overtildelt" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Tildeling antallet må være større enn null" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må væew 1 for serialisert lagervare" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "Valgt lagevare ikke funnet i BOM" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Prosjekt" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Bygge for å tildele deler" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Kilde lagervare" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Kilde lagervare" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Antall" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Installerings informasjon" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Målets lagervare" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Angi antall for build utgang" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Serienummer" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Beliggenhet" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Status" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "BOM varer" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Måldato" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Fullført" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Salgsorder" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Utstedt av" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "Er du sikker du vil kansellere?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Lager kilde" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige steder." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Destinasjon" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Målplassering er ikke spesifisert" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "Tildelte deler" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Opprettet" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Ingen måldato satt" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Fjern lager allokering" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Fjern lager allokering" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Tildele lager" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Bestill nødvendige deler" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Bestill deler" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "Tildel valgte varer" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Vedlegg" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Rediger notater" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "Tildeling fullført" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "Alle usporbar lagervarer har tildelt" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "Velg {name} fil som skal lastes opp" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "Valgt verdi er ikke et gyldig alternativ" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "Verdien må være en boolsk verdi" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "Ingen gruppe" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "Omstart påkrevd" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "En innstilling har blitt endrett som krever en serveromstart" -#: common/models.py:642 -msgid "InvenTree Instance Name" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Firmanavn" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "Internt firmanavn" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Standardvaluta" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "Last ned fra URL" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Tilat nedlastning av eksterne bilder og filer fra ekstern URL" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Strekkode støtte" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Aktiver skrekkodeleser støtte" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Tilat duplisert IPN" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Tillat flere deler å dele samme IPN" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Tillat redigering av IPN" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Tillat å endre IPN-verdien mens du redigerer en del" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "Kopier testdata som standard ved duplisering av en del" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Kopier kategori parametermaler ved oppretting av en del" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Mal" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Montering" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Komponent" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Kjøpbar" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Salgbar" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Sporbar" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Deler er virtuelle som standard" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "Vis import i visninger" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "Vis importveiviseren i noen deler visninger" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Vis pris i skjemaer" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "Vis delpris i noen skjemaer" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 +#: common/models.py:943 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:944 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:949 msgid "Stock Expiry" msgstr "" -#: common/models.py:892 +#: common/models.py:950 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:898 +#: common/models.py:956 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:899 +#: common/models.py:957 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:905 +#: common/models.py:963 msgid "Stock Stale Time" msgstr "" -#: common/models.py:906 +#: common/models.py:964 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:908 +#: common/models.py:966 msgid "days" msgstr "" -#: common/models.py:913 +#: common/models.py:971 msgid "Build Expired Stock" msgstr "" -#: common/models.py:914 +#: common/models.py:972 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:920 +#: common/models.py:978 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:921 +#: common/models.py:979 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:927 +#: common/models.py:985 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:928 +#: common/models.py:986 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:933 +#: common/models.py:991 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:934 +#: common/models.py:992 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:938 +#: common/models.py:996 msgid "Sales Order Reference Prefix" msgstr "Salgsorder referanse prefiks" -#: common/models.py:939 +#: common/models.py:997 msgid "Prefix value for sales order reference" msgstr "Prefiks verdi for salgsorder referanse" -#: common/models.py:944 +#: common/models.py:1002 msgid "Purchase Order Reference Prefix" msgstr "Salgsorder referanse prefiks" -#: common/models.py:945 +#: common/models.py:1003 msgid "Prefix value for purchase order reference" msgstr "Prefiks verdi for salgsorder referanse" -#: common/models.py:951 +#: common/models.py:1009 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:952 +#: common/models.py:1010 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:957 +#: common/models.py:1015 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:958 +#: common/models.py:1016 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:963 +#: common/models.py:1021 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:964 +#: common/models.py:1022 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:969 +#: common/models.py:1027 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:970 +#: common/models.py:1028 msgid "Require user to supply mail on signup" msgstr "Krevt at brukeren angi e-post ved registrering" -#: common/models.py:975 +#: common/models.py:1033 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO brukere" -#: common/models.py:976 +#: common/models.py:1034 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO kontodata" -#: common/models.py:981 +#: common/models.py:1039 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:982 +#: common/models.py:1040 msgid "On signup ask users twice for their mail" msgstr "Ved registrering spør brukere to ganger for e-posten" -#: common/models.py:987 +#: common/models.py:1045 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:988 +#: common/models.py:1046 msgid "On signup ask users twice for their password" msgstr "Ved registrerting, spør brukere to ganger for passord" -#: common/models.py:993 +#: common/models.py:1051 msgid "Group on signup" msgstr "" -#: common/models.py:994 +#: common/models.py:1052 msgid "Group to which new users are assigned on registration" msgstr "Gruppe for hvilke nye brukere som er tilknyttet registrering" -#: common/models.py:999 +#: common/models.py:1057 msgid "Enforce MFA" msgstr "" -#: common/models.py:1000 +#: common/models.py:1058 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:1007 +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 msgid "Enable URL integration" msgstr "Aktiver URL integrering" -#: common/models.py:1008 +#: common/models.py:1073 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1014 +#: common/models.py:1079 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrering" -#: common/models.py:1015 +#: common/models.py:1080 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1021 +#: common/models.py:1086 msgid "Enable app integration" msgstr "Aktiver app integrasjon" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "Vis abbonerte deler" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "Vis abbonerte deler på hjemmesiden" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "Vis abbonerte kategorier" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "Vis abbonerte delkatekorier på hjemmesiden" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på hjemmesiden" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "Antall nylig deler" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "Vis uvaliderte BOMs" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "Vis BOMs som venter validering på hjemmesiden" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endret lagervarer på hjemmesiden" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "Siste lagertelling" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "Antall nylige lagervarer som skal vises på indeksside" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "Vis lav lager" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "Vis lav lagervarer på hjemmesiden" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "Vis tom lagervarer" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Aktiv" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "Sjetong" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "Vert" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "Tittel" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "Brødtekst" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Last opp fil" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Sammelign felter" @@ -2409,7 +2519,7 @@ msgstr "Deler importert" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "Forrige trinn" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "Link til ekstern bedriftsinformasjon" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Bilde" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Produserer dette firmaet deler?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Valuta" @@ -2514,8 +2625,8 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "Standardvaluta brukt for dette firmaet" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "Last ned bilde fra URL" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Kunde" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "Last opp bilde" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Leverandør deler" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Oprett ny leverandørdel" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Ny leverandørdel" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "Valgmuligheter" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "Bestill deler" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Slett deler" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Slett deler" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Produsentdeler" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Opprett ny produsentdeler" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "Ny produsentdel" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Leverandør lager" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Bestillingsorder" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Opprett ny bestillingsorder" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Ny bestillingsorder" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "Salgsordre" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Opprett ny salgsordre" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Ny salgsorder" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "Tildelt lagervare" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "Notater til firma" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "Slett leverandørdeler?" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "Alle valgte leverandørdeler vil slettes" @@ -2872,83 +2985,83 @@ msgstr "Alle valgte leverandørdeler vil slettes" msgid "Supplier List" msgstr "Leverandørliste" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Produsenter" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Bestill del" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "Endre produsent del" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "Slett produsentdel" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "Intern del" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Leverandører" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Slett leverandørdeler" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Slett" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "Tildelt lagervarer" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 2164776b3e..29b47de485 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "Nie znaleziono punktu końcowego API" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Nie określono działania" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" @@ -83,10 +83,10 @@ msgstr "Należy ponownie wpisać ten sam adres e-mail." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Powtórzony numer seryjny: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" @@ -122,7 +122,7 @@ msgstr "Brak pliku" msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Załącznik" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Wybierz plik do załączenia" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Łącze" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -152,11 +152,12 @@ msgstr "Komentarz" msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Użytkownik" @@ -193,42 +194,42 @@ msgstr "Błąd zmiany nazwy pliku" msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Nazwa" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Opis" @@ -240,7 +241,7 @@ msgstr "Opis (opcjonalny)" msgid "parent" msgstr "nadrzędny" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" @@ -250,131 +251,143 @@ msgstr "Nazwa pliku" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Nieprawidłowa wartość" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Plik danych" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Wybierz plik danych do przesłania" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Nieobsługiwany typ pliku" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Plik jest zbyt duży" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Nie znaleziono kolumn w pliku" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Nie znaleziono wierszy danych w pliku" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Nie podano wierszy danych" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Nie podano kolumn danych" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Brakuje wymaganej kolumny: '{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" -msgstr "" +msgstr "Zduplikowana kolumna: '{col}'" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "Czeski" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "Perski" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "Węgierski" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Portugalski" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Chiński" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "W toku" @@ -399,14 +412,14 @@ msgstr "W toku" msgid "Placed" msgstr "Umieszczony" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Zakończono" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Anulowano" @@ -445,91 +458,95 @@ msgstr "Zniszczone" msgid "Rejected" msgstr "Odrzucone" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Utworzono element magazynowy" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" -msgstr "" +msgstr "Edytuj pozycję magazynową" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Przypisano numer seryjny" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Zapas policzony" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Zapas dodany ręcznie" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Zapas usunięty ręcznie" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Lokalizacja zmieniona" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Podziel element podrzędny" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Wyślij do klienta" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Zwrócony od klienta" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Produkcja" @@ -559,15 +576,15 @@ msgstr "Niedozwolony znak w nazwie ({x})" #: InvenTree/validators.py:137 InvenTree/validators.py:153 msgid "Overage value must not be negative" -msgstr "" +msgstr "Wartość przedawnienia nie może być ujemna" #: InvenTree/validators.py:155 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "Przedawnienie nie może przekroczyć 100 %" #: InvenTree/validators.py:162 msgid "Invalid value for overage" -msgstr "" +msgstr "Nieprawidłowa wartość przedawnienia" #: InvenTree/views.py:538 msgid "Delete Item" @@ -589,21 +606,21 @@ msgstr "Ustaw hasło" msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Informacja systemowa" #: barcodes/api.py:55 barcodes/api.py:156 msgid "Must provide barcode_data parameter" -msgstr "" +msgstr "Należy określić parametr barcode_data" #: barcodes/api.py:132 msgid "No match found for barcode data" -msgstr "" +msgstr "Nie znaleziono wyników dla danych kodu kreskowego" #: barcodes/api.py:134 msgid "Match found for barcode data" -msgstr "" +msgstr "Znaleziono wyniki dla danych kodu kreskowego" #: barcodes/api.py:159 msgid "Must provide stockitem parameter" @@ -654,11 +671,11 @@ msgstr "Zlecenie Budowy" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Zlecenia budowy" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Referencja" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Krótki opis budowy" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Budowa nadrzędna" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,20 +723,21 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" -msgstr "Część" +msgstr "Komponent" #: build/models.py:235 msgid "Select part to build" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Lokalizacja źródła" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Kod statusu budowania" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Kod partii" @@ -783,8 +801,8 @@ msgstr "Kod partii" msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Data utworzenia" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Data zakończenia" @@ -805,7 +823,7 @@ msgstr "Data zakończenia" msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Wydany przez" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Odpowiedzialny" @@ -826,11 +844,11 @@ msgstr "Odpowiedzialny" msgid "User responsible for this build order" msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Link Zewnętrzny" @@ -839,17 +857,17 @@ msgstr "Link Zewnętrzny" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Uwagi" @@ -869,69 +887,69 @@ msgstr "Budowanie wyjścia jest już ukończone" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Budowa" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Lokalizacja magazynowania przedmiotu" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Ilość" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Lokalizacja" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Status" @@ -1080,7 +1098,7 @@ msgstr "" #: build/serializers.py:450 msgid "Accept Incomplete" -msgstr "" +msgstr "Akceptuj niekompletne" #: build/serializers.py:451 msgid "Accept that the required number of build outputs have not been completed" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1142,7 +1160,7 @@ msgstr "" #: build/serializers.py:739 msgid "Exclude Location" -msgstr "" +msgstr "Wyklucz lokalizację" #: build/serializers.py:740 msgid "Exclude stock items from this selected location" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Data docelowa" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "Zaległe" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Zakończone" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Zamówienie zakupu" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Dodane przez" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "Czy na pewno przerwać tę budowę?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Szczegóły budowy" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Źródło magazynu" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Przeznaczenie" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Nie określono lokalizacji docelowej" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Partia" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Utworzony" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Budowa niezakończona" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Przydziel zapasy do budowy" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Cofnij przydział zapasów" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Cofnij przydział zapasów" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" -msgstr "" +msgstr "Automatyczne przypisywanie" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Przydziel zapasy" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Zamów wymagane komponenty" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" -msgstr "Zamów części" +msgstr "Zamów komponent" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Drukuj etykiety" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Załączniki" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "Nowe zlecenie budowy" @@ -1509,891 +1531,979 @@ msgstr "" #: common/files.py:65 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Nieobsługiwany format pliku: {ext.upper()}" #: common/files.py:67 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Błąd odczytu pliku (nieprawidłowe kodowanie)" #: common/files.py:72 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Błąd odczytu pliku (nieprawidłowy format)" #: common/files.py:74 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Błąd odczytu pliku (niepoprawny wymiar)" #: common/files.py:76 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Błąd odczytu pliku (dane mogą być uszkodzone)" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Plik" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Wybierz plik do przesłania" #: common/forms.py:50 msgid "{name.title()} File" -msgstr "" +msgstr "{name.title()} Plik" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Wybierz plik {name} do przesłania" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" -msgstr "" +msgstr "Wartość musi być wartością binarną" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" -msgstr "" +msgstr "Wartość musi być liczbą całkowitą" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" -msgstr "" +msgstr "Brak grupy" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" -msgstr "" +msgstr "Wymagane ponowne uruchomienie" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "Nazwa instancji InvenTree" +#: common/models.py:687 +msgid "Server Instance Name" +msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" -msgstr "" +msgstr "Użyj nazwy instancji" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "Nazwa firmy" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "Bazowy URL" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "Bazowy adres URL dla instancji serwera" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "Pobierz z adresu URL" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "Obsługa kodu kreskowego" - -#: common/models.py:683 -msgid "Enable barcode scanner support" -msgstr "Włącz obsługę skanera kodów" - -#: common/models.py:689 -msgid "IPN Regex" -msgstr "Wyrażenie regularne IPN" - -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" -msgstr "" - -#: common/models.py:694 -msgid "Allow Duplicate IPN" -msgstr "Zezwól na powtarzający się IPN" - -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "Nazwa firmy" + +#: common/models.py:708 +msgid "Internal company name" +msgstr "Wewnętrzna nazwa firmy" + +#: common/models.py:713 +msgid "Base URL" +msgstr "Bazowy URL" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "Bazowy adres URL dla instancji serwera" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "Domyślna waluta" + +#: common/models.py:721 +msgid "Default currency" +msgstr "Domyślna waluta" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "Pobierz z adresu URL" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "Obsługa kodu kreskowego" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "Włącz obsługę skanera kodów" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "Wyrażenie regularne IPN" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "Zezwól na powtarzający się IPN" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Szablon" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Złożenie" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Komponent" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Możliwość śledzenia" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" -msgstr "" +msgstr "Pokaż cenę w BOM" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" -msgstr "" +msgstr "Dołącz informacje cenowe w tabelach BOM" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" -msgstr "" +msgstr "Pokaż historię cen" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" -msgstr "" +msgstr "Ceny wewnętrzne" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" -msgstr "" +msgstr "Włącz raporty" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Raporty testów" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "dni" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:966 +msgid "days" +msgstr "dni" + +#: common/models.py:971 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:972 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:978 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:985 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:986 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:991 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:996 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:997 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:1009 +msgid "Enable password forgot" +msgstr "Włącz opcję zapomnianego hasła" + +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" +msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" + +#: common/models.py:1015 +msgid "Enable registration" +msgstr "Włącz rejestrację" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" +msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" + +#: common/models.py:1021 +msgid "Enable SSO" +msgstr "Włącz SSO" + +#: common/models.py:1022 msgid "Enable SSO on the login pages" -msgstr "" +msgstr "Włącz SSO na stronach logowania" -#: common/models.py:969 +#: common/models.py:1027 msgid "Email required" -msgstr "" +msgstr "Adres e-mail jest wymagany" -#: common/models.py:970 +#: common/models.py:1028 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:975 +#: common/models.py:1033 msgid "Auto-fill SSO users" -msgstr "" +msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:976 +#: common/models.py:1034 msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:981 +#: common/models.py:1039 msgid "Mail twice" -msgstr "" +msgstr "E-mail dwa razy" -#: common/models.py:982 +#: common/models.py:1040 msgid "On signup ask users twice for their mail" -msgstr "" +msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/models.py:987 +#: common/models.py:1045 msgid "Password twice" -msgstr "" +msgstr "Hasło dwukrotnie" -#: common/models.py:988 +#: common/models.py:1046 msgid "On signup ask users twice for their password" -msgstr "" +msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:993 +#: common/models.py:1051 msgid "Group on signup" -msgstr "" +msgstr "Grupuj przy rejestracji" -#: common/models.py:994 +#: common/models.py:1052 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:999 +#: common/models.py:1057 msgid "Enforce MFA" -msgstr "" +msgstr "Wymuś MFA" -#: common/models.py:1000 +#: common/models.py:1058 msgid "Users must use multifactor security." +msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." + +#: common/models.py:1064 +msgid "Check plugins on startup" msgstr "" -#: common/models.py:1007 +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 msgid "Enable URL integration" -msgstr "" +msgstr "Włącz integrację URL" -#: common/models.py:1008 +#: common/models.py:1073 msgid "Enable plugins to add URL routes" -msgstr "" +msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:1014 +#: common/models.py:1079 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1015 +#: common/models.py:1080 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1021 +#: common/models.py:1086 msgid "Enable app integration" -msgstr "" +msgstr "Włącz integrację z aplikacją" -#: common/models.py:1022 +#: common/models.py:1087 msgid "Enable plugins to add apps" -msgstr "" +msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" -msgstr "" +msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" -msgstr "" +msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" -msgstr "" +msgstr "Pokaż obserwowane części" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" -msgstr "" +msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" -msgstr "" +msgstr "Pokaż obserwowane kategorie" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" -msgstr "" +msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" -msgstr "" +msgstr "Pokaż najnowsze części" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" -msgstr "" +msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" -msgstr "" +msgstr "Pokaż niski stan magazynowy" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "Pokaż ilość w formularzach" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "Pokaż ilość w formularzach" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "Stały pasek nawigacyjny" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "Format daty" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "Preferowany format wyświetlania dat" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "Planowanie komponentów" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "Cena" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" -msgstr "" +msgstr "Punkt końcowy" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Aktywny" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" -msgstr "" +msgstr "Token" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" -msgstr "" +msgstr "Sekret" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" -msgstr "" +msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" -msgstr "" +msgstr "Id wiadomości" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" -msgstr "" +msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" -msgstr "" +msgstr "Host" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" -msgstr "" +msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" -msgstr "" +msgstr "Nagłówek" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" -msgstr "" +msgstr "Nagłówek tej wiadomości" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" -msgstr "" +msgstr "Zawartość" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Wyślij plik" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" #: common/views.py:95 msgid "Match Items" -msgstr "" +msgstr "Pasujące elementy" #: common/views.py:440 msgid "Fields matching failed" @@ -2409,9 +2519,9 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" -msgstr "" +msgstr "Poprzedni krok" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 @@ -2477,7 +2587,7 @@ msgstr "Punkt kontaktowy" msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Obraz" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Czy to przedsiębiorstwo produkuje części?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Waluta" @@ -2514,8 +2625,8 @@ msgstr "Waluta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Część bazowa" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "Wybierz część" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Producent" @@ -2538,17 +2649,17 @@ msgstr "Producent" msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:247 msgid "Manufacturer Part Number" -msgstr "Numer producenta" +msgstr "Numer producenta komponentu" #: company/models.py:349 msgid "URL for external manufacturer part link" @@ -2559,11 +2670,11 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" -msgstr "Część producenta" +msgstr "Komponent producenta" #: company/models.py:416 msgid "Parameter name" @@ -2571,25 +2682,25 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" -msgstr "" +msgstr "Wartość" #: company/models.py:423 msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "Jednostki" #: company/models.py:430 msgid "Parameter units" -msgstr "" +msgstr "Jednostki parametru" #: company/models.py:502 msgid "Linked manufacturer part must reference the same base part" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Dostawca" @@ -2613,7 +2724,7 @@ msgstr "Wybierz dostawcę" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Uwaga" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "Opakowanie" @@ -2658,7 +2769,7 @@ msgstr "Opakowanie" msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "wielokrotność" @@ -2668,15 +2779,15 @@ msgstr "" #: company/models.py:708 msgid "last updated" -msgstr "" +msgstr "ostatnia aktualizacja" #: company/serializers.py:70 msgid "Default currency used for this supplier" -msgstr "" +msgstr "Domyślna waluta używana dla tego dostawcy" #: company/serializers.py:71 msgid "Currency Code" -msgstr "" +msgstr "Kod Waluty" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 @@ -2687,7 +2798,7 @@ msgstr "Firma" #: company/templates/company/company_base.html:22 #: templates/js/translated/order.js:279 msgid "Create Purchase Order" -msgstr "" +msgstr "Utwórz zamówienie zakupu" #: company/templates/company/company_base.html:26 msgid "Company actions" @@ -2704,12 +2815,12 @@ msgstr "Edytuj firmę" #: company/templates/company/company_base.html:36 msgid "Delete company" -msgstr "" +msgstr "Usuń firmę" #: company/templates/company/company_base.html:37 #: company/templates/company/company_base.html:159 msgid "Delete Company" -msgstr "" +msgstr "Usuń firmę" #: company/templates/company/company_base.html:53 #: part/templates/part/part_thumb.html:12 @@ -2719,238 +2830,240 @@ msgstr "Prześlij nowy obraz" #: company/templates/company/company_base.html:56 #: part/templates/part/part_thumb.html:14 msgid "Download image from URL" -msgstr "" +msgstr "Pobierz obraz z adresu URL" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Klient" #: company/templates/company/company_base.html:108 msgid "Uses default currency" -msgstr "" +msgstr "Używa domyślnej waluty" #: company/templates/company/company_base.html:122 msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" -msgstr "" +msgstr "Załaduj obrazek" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Komponenty dostawcy" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Utwórz nowego dostawcę części" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Nowy dostawca części" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "Opcje" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" -msgstr "Zamów części" +msgstr "Zamów komponenty" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Usuń części" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Usuń części" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "Części producenta" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "Nowa część producenta" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Zapasy dostawcy" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" -msgstr "" +msgstr "Zamówienia zakupu" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" -msgstr "" +msgstr "Utwórz nowe zamówienie zakupu" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" -msgstr "" +msgstr "Nowe zamówienie zakupu" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" -msgstr "" +msgstr "Notatki firmy" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 -msgid "Delete Supplier Parts?" -msgstr "" - -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:451 +msgid "Delete Supplier Parts?" +msgstr "Usunąć komponenty dostawcy?" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "Wszystkie wybrane komponenty dostawcy zostaną usunięte" #: company/templates/company/index.html:8 msgid "Supplier List" msgstr "Lista dostawców" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Producenci" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" -msgstr "Zamów część" +msgstr "Zamów komponent" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" -msgstr "Edytuj część producenta" +msgstr "Edytuj komponent producenta" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" -msgstr "Usuń cześć producenta" +msgstr "Usuń komponent producenta" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" -msgstr "Część wewnętrzna" +msgstr "Komponent wewnętrzny" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "Dostawcy" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "Usuń" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametry" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" -msgstr "" +msgstr "Nowy parametr" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" -msgstr "" +msgstr "Usuń parametry" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "Dodaj parametr" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" -msgstr "" +msgstr "Wybrane parametry zostaną usunięte" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" -msgstr "" +msgstr "Usuń parametry" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "Nowy towar" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" -msgstr "" +msgstr "Zamów komponent" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "Informacja cenowa" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "Edytuj przedział cenowy" @@ -3044,18 +3159,18 @@ msgstr "" #: company/templates/company/supplier_part.html:273 msgid "Last updated" -msgstr "" +msgstr "Ostatnio aktualizowane" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Stan" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Cennik" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Towary" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Now producent" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Klienci" @@ -3100,7 +3218,7 @@ msgstr "Klienci" msgid "New Customer" msgstr "Nowy klient" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Firmy" @@ -3108,24 +3226,24 @@ msgstr "Firmy" msgid "New Company" msgstr "Nowa firma" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Pobierz obraz" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "Zamówienie" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "Zlecenie zakupu" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "Odebrane" @@ -3370,9 +3488,9 @@ msgstr "Odebrane" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "Cena zakupu" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "Cena sprzedaży" @@ -3395,39 +3513,39 @@ msgstr "Jednostkowa cena sprzedaży" #: order/models.py:998 msgid "Shipped quantity" -msgstr "" +msgstr "Wysłana ilość" #: order/models.py:1085 msgid "Date of shipment" -msgstr "" +msgstr "Data wysyłki" #: order/models.py:1092 msgid "Checked By" -msgstr "" +msgstr "Sprawdzone przez" #: order/models.py:1093 msgid "User who checked this shipment" -msgstr "" +msgstr "Użytkownik, który sprawdził tę wysyłkę" #: order/models.py:1101 msgid "Shipment number" -msgstr "" +msgstr "Numer przesyłki" #: order/models.py:1108 msgid "Shipment notes" -msgstr "" +msgstr "Notatki do przesyłki" #: order/models.py:1115 msgid "Tracking Number" -msgstr "" +msgstr "Numer śledzenia" #: order/models.py:1116 msgid "Shipment tracking information" -msgstr "" +msgstr "Informacje o śledzeniu przesyłki" #: order/models.py:1126 msgid "Shipment has already been sent" -msgstr "" +msgstr "Przesyłka została już wysłana" #: order/models.py:1129 msgid "Shipment has no allocated stock items" @@ -3470,15 +3588,15 @@ msgid "Line" msgstr "Linia" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" -msgstr "" +msgstr "Przesyłka" #: order/models.py:1249 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "Komponent" @@ -3600,21 +3718,21 @@ msgstr "" #: order/templates/order/order_base.html:45 #: order/templates/order/sales_order_base.html:58 msgid "Edit order" -msgstr "" +msgstr "Edytuj zamówienie" #: order/templates/order/order_base.html:56 msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" #: order/templates/order/order_base.html:62 #: order/templates/order/sales_order_base.html:67 order/views.py:181 msgid "Complete Order" -msgstr "" +msgstr "Kompletne zamówienie" #: order/templates/order/order_base.html:84 #: order/templates/order/sales_order_base.html:79 @@ -3624,7 +3742,7 @@ msgstr "Numer zamówienia" #: order/templates/order/order_base.html:89 #: order/templates/order/sales_order_base.html:84 msgid "Order Description" -msgstr "" +msgstr "Opis zamówienia" #: order/templates/order/order_base.html:94 #: order/templates/order/sales_order_base.html:89 @@ -3640,7 +3758,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:134 #: order/templates/order/sales_order_base.html:144 msgid "Incomplete" -msgstr "" +msgstr "Niekompletny" #: order/templates/order/order_base.html:149 #: report/templates/report/inventree_build_order_base.html:122 @@ -3649,7 +3767,7 @@ msgstr "Wydany" #: order/templates/order/order_base.html:219 msgid "Edit Purchase Order" -msgstr "" +msgstr "Edytuj zamówienie zakupu" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." @@ -3657,7 +3775,7 @@ msgstr "" #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" -msgstr "" +msgstr "Oznacz zamówienie jako zakończone?" #: order/templates/order/order_complete.html:10 msgid "This order has line items which have not been marked as received." @@ -3700,25 +3818,25 @@ msgstr "Wybierz dostawcę części" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" -msgstr "" +msgstr "Usuń wiersz" #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" -msgstr "" +msgstr "Wróć do zamówień" #: order/templates/order/order_wizard/po_upload.html:17 msgid "Upload File for Purchase Order" -msgstr "" +msgstr "Prześlij plik do zamówienia zakupu" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3733,7 +3851,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" -msgstr "" +msgstr "Wybierz dostawców" #: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" @@ -3745,12 +3863,12 @@ msgstr "Wybierz dostawcę" #: order/templates/order/order_wizard/select_parts.html:57 msgid "No price" -msgstr "" +msgstr "Brak ceny" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" -msgstr "" +msgstr "Wybierz dostawcę dla %(name)s" #: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 @@ -3796,34 +3914,34 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "Dodaj element zamówienia" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "Otrzymane elementy" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Notatki zamówień" #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:33 msgid "Print Order Reports" -msgstr "" +msgstr "Wydrukuj raporty zamówienia" #: order/templates/order/sales_order_base.html:43 msgid "Print sales order report" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,23 +3984,23 @@ msgstr "Ostrzeżenie" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" -msgstr "" +msgstr "Oczekujące przesyłki" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "Akcje" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" -msgstr "" +msgstr "Nowa wysyłka" #: order/views.py:99 msgid "Cancel Order" @@ -3898,7 +4016,7 @@ msgstr "Zamówienie nie może zostać anulowane" #: order/views.py:125 msgid "Cancel sales order" -msgstr "" +msgstr "Anuluj zamówienie sprzedaży" #: order/views.py:151 msgid "Issue Order" @@ -3926,7 +4044,7 @@ msgstr "" #: order/views.py:489 msgid "Update prices" -msgstr "" +msgstr "Zaktualizuj ceny" #: order/views.py:747 #, python-brace-format @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" -msgstr "" +msgstr "Ważny" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" -msgstr "" +msgstr "Ta opcja musi być zaznaczona" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" -msgstr "" +msgstr "Musi być większe niż zero" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" -msgstr "" +msgstr "Musi być prawidłową ilością" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" -msgstr "" +msgstr "To pole jest wymagane" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -4004,14 +4122,16 @@ msgstr "Domyślna lokalizacja" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "Dostępna ilość" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" -msgstr "" +msgstr "W Zamówieniu" #: part/forms.py:84 msgid "Select part category" @@ -4031,7 +4151,7 @@ msgstr "" #: part/models.py:113 msgid "Default location for parts in this category" -msgstr "" +msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" #: part/models.py:116 msgid "Default keywords" @@ -4041,36 +4161,37 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "Kategoria komponentu" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" -msgstr "" +msgstr "Kategorie części" #: part/models.py:368 part/templates/part/cat_link.html:3 #: part/templates/part/category.html:17 part/templates/part/category.html:133 #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Części" #: part/models.py:460 msgid "Invalid choice for parent part" -msgstr "" +msgstr "Nieprawidłowy wybór dla części nadrzędnej" #: part/models.py:540 part/models.py:552 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" -msgstr "" +msgstr "Część '{p1}' jest używana w BOM dla '{p2}' (rekursywne)" #: part/models.py:682 msgid "Next available serial numbers are" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" -msgstr "Nazwa części" +msgstr "Nazwa komponentu" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" -msgstr "" +msgstr "Czy szablon" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" -msgstr "" +msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "Wariant" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" -msgstr "Opis części" +msgstr "Opis komponentu" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "Kategoria" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "IPN" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Wersja" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" -msgstr "" +msgstr "Domyślne wygasanie" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" -msgstr "Czy ta część może być zbudowana z innych części?" +msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:992 -msgid "Is this a virtual part, such as a software product or license?" -msgstr "" - #: part/models.py:997 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" + +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" -msgstr "" +msgstr "Tworzenie użytkownika" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" -msgstr "" +msgstr "Testowy opis" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" -msgstr "" +msgstr "Wprowadź opis do tego testu" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "Wymagane" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" -msgstr "" +msgstr "Wymaga wartości" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" -msgstr "" +msgstr "Wymaga załącznika" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "Dane" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" -msgstr "" +msgstr "Wartość parametru" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" -msgstr "" +msgstr "ID komponentu" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" -msgstr "" +msgstr "Unikalny wartość ID komponentu" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" -msgstr "" +msgstr "Nazwa komponentu" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" -msgstr "" +msgstr "IPN komponentu" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" -msgstr "" +msgstr "Wartość IPN części" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" -msgstr "" +msgstr "Poziom" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" -msgstr "" +msgstr "Opcjonalne" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" -msgstr "" +msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" -msgstr "" +msgstr "Notatki pozycji BOM" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" -msgstr "" +msgstr "Dziedziczone" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" -msgstr "" +msgstr "Zezwalaj na warianty" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" -msgstr "" +msgstr "Część zastępcza" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "Część 1" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "Część 2" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "Waluta zakupu tego towaru" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" -msgstr "" +msgstr "Usuń istniejące dane" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" -msgstr "" +msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" -msgstr "" +msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" -msgstr "" +msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" -msgstr "" +msgstr "Nie podano ilości" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" -msgstr "" +msgstr "Nieprawidłowa ilość" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "Nie masz uprawnień do edycji BOM." @@ -4569,41 +4700,41 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" #: part/templates/part/bom.html:34 msgid "Delete Items" -msgstr "" +msgstr "Usuń elementy" #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" -msgstr "" +msgstr "Masz włączone powiadomienia dla tej kategorii" #: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" -msgstr "" +msgstr "Włącz powiadomienia dla tej kategorii" #: part/templates/part/category.html:42 msgid "Category Actions" -msgstr "" +msgstr "Akcje kategorii" #: part/templates/part/category.html:47 msgid "Edit category" -msgstr "" +msgstr "Edytuj kategorię" #: part/templates/part/category.html:48 msgid "Edit Category" -msgstr "" +msgstr "Edytuj kategorię" #: part/templates/part/category.html:52 msgid "Delete category" -msgstr "" +msgstr "Usuń kategorię" #: part/templates/part/category.html:53 msgid "Delete Category" -msgstr "" +msgstr "Usuń kategorię" #: part/templates/part/category.html:61 msgid "Create new part category" @@ -4611,28 +4742,28 @@ msgstr "Stwórz nową kategorię komponentów" #: part/templates/part/category.html:62 msgid "New Category" -msgstr "" +msgstr "Nowa kategoria" #: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" -msgstr "" +msgstr "Ścieżka kategorii" #: part/templates/part/category.html:94 msgid "Top level part category" -msgstr "" +msgstr "Kategoria najwyższego poziomu" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" -msgstr "" +msgstr "Podkategorie" #: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Części (w tym podkategorie)" #: part/templates/part/category.html:157 msgid "Create new part" -msgstr "" +msgstr "Utwórz nową część" #: part/templates/part/category.html:158 templates/js/translated/bom.js:365 msgid "New Part" @@ -4648,7 +4779,7 @@ msgstr "Ustaw kategorię" #: part/templates/part/category.html:176 msgid "Print Labels" -msgstr "" +msgstr "Drukuj etykiety" #: part/templates/part/category.html:178 msgid "Export" @@ -4658,230 +4789,230 @@ msgstr "Eksportuj" msgid "Export Data" msgstr "Eksportuj dane" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "Parametry części" -#: part/templates/part/category.html:285 -msgid "Create Part Category" -msgstr "" - -#: part/templates/part/category.html:305 -msgid "Create Part" -msgstr "" - -#: part/templates/part/category.html:308 -msgid "Create another part after this one" -msgstr "" - #: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "Utwórz nową kategorię części" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "Utwórz część" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "Utwórz kolejną część po tej" + +#: part/templates/part/category.html:333 msgid "Part created successfully" -msgstr "" +msgstr "Część utworzona pomyślnie" #: part/templates/part/category_delete.html:7 msgid "Are you sure you want to delete this part category?" -msgstr "" +msgstr "Czy na pewno chcesz usunąć tę kategorię części?" #: part/templates/part/category_delete.html:12 #, python-format msgid "This category contains %(n)s child categories" -msgstr "" +msgstr "Ta kategoria zawiera %(n)s kategorii podrzędnych" #: part/templates/part/category_delete.html:14 #, python-format msgid "If this category is deleted, these child categories will be moved to %(category)s" -msgstr "" +msgstr "Jeśli ta kategoria zostanie usunięta, te kategorie podrzędne zostaną przeniesione do %(category)s" #: part/templates/part/category_delete.html:16 msgid "If this category is deleted, these child categories will be moved to the top level part category" -msgstr "" +msgstr "Jeśli ta kategoria zostanie usunięta, te kategorie podrzędne zostaną przeniesione do kategorii części najwyższego poziomu" #: part/templates/part/category_delete.html:23 #, python-format msgid "This category contains %(n)s parts" -msgstr "" +msgstr "Ta kategoria zawiera %(n)s części" #: part/templates/part/category_delete.html:25 #, python-format msgid "If this category is deleted, these parts will be moved to %(category)s" -msgstr "" +msgstr "Jeśli ta kategoria zostanie usunięta, te części zostaną przeniesione do %(category)s" #: part/templates/part/category_delete.html:27 msgid "If this category is deleted, these parts will be moved to the top level part category" -msgstr "" +msgstr "Jeśli ta kategoria zostanie usunięta, te części zostaną przeniesione do kategorii części najwyższego poziomu" #: part/templates/part/category_sidebar.html:13 msgid "Import Parts" -msgstr "" +msgstr "Importuj Części" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "Duplikuj część" #: part/templates/part/copy_part.html:10 #, python-format msgid "Make a copy of part '%(full_name)s'." -msgstr "" +msgstr "Wykonaj kopię części '%(full_name)s'." #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "Prawdopodobnie pasujące elementy" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 msgid "The new part may be a duplicate of these existing parts" -msgstr "" +msgstr "Nowa część może być duplikatem tych istniejących części" #: part/templates/part/create_part.html:17 #, python-format msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Zapasy części" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "Warianty Części" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "Utwórz nowy wariant" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "Nowy wariant" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" -msgstr "" +msgstr "Powiązane części" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" -msgstr "" +msgstr "Akcje eksportu" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" -msgstr "" +msgstr "Eksportuj BOM" + +#: part/templates/part/detail.html:256 +msgid "Print BOM Report" +msgstr "Drukuj raport BOM" #: part/templates/part/detail.html:266 -msgid "Print BOM Report" -msgstr "" - -#: part/templates/part/detail.html:276 msgid "Upload BOM" -msgstr "" +msgstr "Wgraj BOM" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" -msgstr "" +msgstr "Weryfikuj BOM" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" -msgstr "" +msgstr "Nowa część w BOM" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" -msgstr "" +msgstr "Dodaj część do BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" -msgstr "" +msgstr "Złożenia" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" -msgstr "" +msgstr "Dostawcy Części" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" -msgstr "" +msgstr "Producenci części" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "Powiązane części" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "Dodaj powiązaną część" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4908,26 +5039,26 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:42 #: templates/patterns/wizard/match_fields.html:41 msgid "Remove column" -msgstr "" +msgstr "Usuń kolumnę" #: part/templates/part/import_wizard/ajax_match_fields.html:53 #: part/templates/part/import_wizard/match_fields.html:60 #: templates/patterns/wizard/match_fields.html:59 msgid "Duplicate selection" -msgstr "" +msgstr "Duplikuj wybrane" #: part/templates/part/import_wizard/ajax_part_upload.html:29 #: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." -msgstr "" +msgstr "Niewystarczające uprawnienia." #: part/templates/part/import_wizard/part_upload.html:8 msgid "Return to Parts" -msgstr "" +msgstr "Powrót do części" #: part/templates/part/import_wizard/part_upload.html:16 msgid "Import Parts from File" -msgstr "" +msgstr "Importuj części z pliku" #: part/templates/part/part_app_base.html:12 msgid "Part List" @@ -4935,11 +5066,11 @@ msgstr "Lista części" #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 msgid "You are subscribed to notifications for this part" -msgstr "" +msgstr "Masz włączone powiadomienia dla tej części" #: part/templates/part/part_base.html:35 msgid "Subscribe to notifications for this part" -msgstr "" +msgstr "Włącz powiadomienia dla tej części" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:35 @@ -4947,257 +5078,242 @@ msgstr "" msgid "Barcode actions" msgstr "Akcje kodów kreskowych" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Pokaż Kod QR" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Drukuj etykietę" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" -msgstr "" +msgstr "Pokaż informacje o cenach" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Akcje magazynowe" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "Duplikuj część" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "Edytuj część" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "Usuń część" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "Część jest wirtualna (nie fizyczna)" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "Nieaktywny" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" -msgstr "" +msgstr "Na stanie" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" -msgstr "" +msgstr "Przypisane do zamówień sprzedaży" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" -msgstr "" +msgstr "Minimalny poziom stanu magazynowego" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "Ostatni numer seryjny" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" -msgstr "" +msgstr "Szukaj numeru seryjnego" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" -msgstr "" +msgstr "Oblicz" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" -msgstr "" +msgstr "Nie znaleziono pasujących obrazów" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" -msgstr "" +msgstr "Ukryj szczegóły części" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" -msgstr "" +msgstr "Cennik dostawcy" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "Cena jednostkowa" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" -msgstr "" +msgstr "Całkowity Koszt" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" -msgstr "" +msgstr "Brak dostępnych cen dostawców" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" -msgstr "" +msgstr "Cena zakupu jednostkowego" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" -msgstr "" +msgstr "Całkowita cena zakupu" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" -msgstr "" +msgstr "Uwaga: cena BOM jest niekompletna dla tej części" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" -msgstr "" +msgstr "Brak dostępnych cen BOM" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" -msgstr "" +msgstr "Cena wewnętrzna" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." -msgstr "" +msgstr "Brak dostępnych informacji o cenach dla tej części." -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" -msgstr "" +msgstr "Warianty" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" -msgstr "" +msgstr "Użyte w" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" -msgstr "" +msgstr "Planowanie" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" -msgstr "" +msgstr "Szablony testowe" #: part/templates/part/part_thumb.html:11 msgid "Select from existing images" -msgstr "" +msgstr "Wybierz z istniejących obrazów" #: part/templates/part/partial_delete.html:9 #, python-format msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n" "
          Disable the \"Active\" part attribute and re-try.\n" " " -msgstr "" +msgstr "Część '%(full_name)s' nie może zostać usunięta, ponieważ jest nadal oznaczona jako aktywna.\n" +"
          Wyłącz atrybut części \"Aktywne\" i spróbuj ponownie.\n" +" " #: part/templates/part/partial_delete.html:17 #, python-format msgid "Are you sure you want to delete part '%(full_name)s'?" -msgstr "" +msgstr "Czy na pewno chcesz usunąć część '%(full_name)s'?" #: part/templates/part/partial_delete.html:22 #, python-format msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" -msgstr "" +msgstr "Ta część jest używana w BOM-ach dla %(count)s innych części. Jeśli usuniesz tę część, BOM-y dla następujących części zostaną zaktualizowane" #: part/templates/part/partial_delete.html:32 #, python-format @@ -5219,69 +5335,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" -msgstr "" +msgstr "Przedziały cenowe" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" -msgstr "" +msgstr "Pokaż cenę dostawcy" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" -msgstr "" +msgstr "Pokaż cenę zakupu" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" -msgstr "" +msgstr "Pokaż koszt BOM" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" -msgstr "" +msgstr "Pokaż koszt sprzedaży" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" -msgstr "" +msgstr "Pokaż cenę sprzedaży" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" -msgstr "" +msgstr "Parametry obliczeniowe" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" -msgstr "" +msgstr "Koszty dostawcy" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" -msgstr "" +msgstr "Przejdź do przeglądu" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" -msgstr "" +msgstr "Koszt wewnętrzny" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" -msgstr "" +msgstr "Koszt BOM" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" -msgstr "" +msgstr "Koszt sprzedaży" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5405,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "Brak w magazynie" @@ -5345,204 +5460,201 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" +msgstr "Nieznana baza danych" + +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" msgstr "" -#: part/views.py:88 +#: part/views.py:86 msgid "Set Part Category" -msgstr "" +msgstr "Ustaw kategorię części" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" -msgstr "" +msgstr "Żaden" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" -msgstr "" +msgstr "Kod QR części" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" -msgstr "" +msgstr "Wybierz obrazek części" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" -msgstr "" +msgstr "Zaktualizowano zdjęcie części" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" -msgstr "" +msgstr "Nie znaleziono obrazka części" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" -msgstr "" +msgstr "Potwierdź usunięcie części" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" -msgstr "" +msgstr "Część została usunięta" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" -msgstr "" +msgstr "Cennik części" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "Edytuj kategorię części" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" #: plugin/models.py:26 msgid "Plugin Configuration" -msgstr "" +msgstr "Konfiguracja wtyczki" #: plugin/models.py:27 msgid "Plugin Configurations" -msgstr "" +msgstr "Konfiguracja wtyczek" #: plugin/models.py:32 msgid "Key" -msgstr "" +msgstr "Klucz" #: plugin/models.py:33 msgid "Key of plugin" -msgstr "" +msgstr "Klucz wtyczki" #: plugin/models.py:41 msgid "PluginName of the plugin" -msgstr "" +msgstr "Nazwa wtyczki" #: plugin/models.py:47 msgid "Is the plugin active" -msgstr "" +msgstr "Czy wtyczka jest aktywna" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" -msgstr "" +msgstr "Wtyczka" #: plugin/samples/integration/sample.py:42 msgid "Enable PO" -msgstr "" +msgstr "Włącz PO" #: plugin/samples/integration/sample.py:43 msgid "Enable PO functionality in InvenTree interface" -msgstr "" +msgstr "Włącz funkcjonalność PO w interfejsie InvenTree" #: plugin/samples/integration/sample.py:48 msgid "API Key" -msgstr "" +msgstr "Klucz API" #: plugin/samples/integration/sample.py:49 msgid "Key required for accessing external API" -msgstr "" +msgstr "Klucz wymagany do uzyskania dostępu do zewnętrznego API" #: plugin/samples/integration/sample.py:52 msgid "Numerical" -msgstr "" +msgstr "Liczbowy" #: plugin/samples/integration/sample.py:53 msgid "A numerical setting" -msgstr "" +msgstr "Ustawienie numeryczne" #: plugin/samples/integration/sample.py:58 msgid "Choice Setting" -msgstr "" +msgstr "Ustawienie jednokrotnego wyboru" #: plugin/samples/integration/sample.py:59 msgid "A setting with multiple choices" -msgstr "" +msgstr "Ustawienie wielokrotnego wyboru" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "Źródłowy adres URL" #: plugin/serializers.py:50 -msgid "Source URL" -msgstr "" - -#: plugin/serializers.py:51 msgid "Source for the package - this can be a custom registry or a VCS path" -msgstr "" +msgstr "Źródło pakietu - może to być niestandardowy rejestr lub ścieżka VCS" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "Nazwa pakietu" #: plugin/serializers.py:56 -msgid "Package Name" -msgstr "" - -#: plugin/serializers.py:57 msgid "Name for the Plugin Package - can also contain a version indicator" -msgstr "" +msgstr "Nazwa pakietu wtyczki - może również zawierać wskaźnik wersji" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "Potwierdź instalację wtyczki" #: plugin/serializers.py:60 -msgid "Confirm plugin installation" -msgstr "" - -#: plugin/serializers.py:61 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." -msgstr "" +msgstr "Spowoduje to zainstalowanie tej wtyczki w bieżącej instancji. Instancja przejdzie do trybu konserwacji." -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" -msgstr "" +msgstr "Instalacja nie została potwierdzona" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5553,7 +5665,7 @@ msgstr "" #: report/models.py:182 msgid "Template name" -msgstr "" +msgstr "Nazwa szablonu" #: report/models.py:188 msgid "Report template file" @@ -5613,7 +5725,7 @@ msgstr "" #: report/models.py:548 msgid "Snippet" -msgstr "" +msgstr "Wycinek" #: report/models.py:549 msgid "Report snippet file" @@ -5644,12 +5756,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Numer Seryjny" @@ -5658,19 +5770,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" -msgstr "" +msgstr "Test" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "Wynik" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "Data" @@ -5685,29 +5797,29 @@ msgstr "Niezaliczone" #: report/templates/report/inventree_test_report_base.html:123 #: stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" -msgstr "" +msgstr "Zainstalowane elementy" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" -msgstr "" +msgstr "Numer seryjny" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "Data ważności" @@ -5741,234 +5853,238 @@ msgstr "" #: stock/forms.py:173 msgid "Confirm uninstall" -msgstr "" +msgstr "Potwierdź odinstalowanie" #: stock/forms.py:173 msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" -msgstr "" +msgstr "Właściciel" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" -msgstr "" +msgstr "Wybierz właściciela" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" -msgstr "" +msgstr "Zainstalowane w" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" -msgstr "" +msgstr "Usuń po wyczerpaniu" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Ilość nie może przekraczać dostępnej ilości towaru ({n})" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" -msgstr "" +msgstr "Notatki do wpisu" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" -msgstr "" +msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" -msgstr "" +msgstr "Nazwa testu" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" -msgstr "" +msgstr "Wynik testu" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6092,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "Cena zakupu tego towaru" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "Waluta zakupu tego towaru" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6117,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" @@ -6023,7 +6135,7 @@ msgstr "" #: stock/serializers.py:646 msgid "Part must be salable" -msgstr "" +msgstr "Część musi być dostępna do sprzedaży" #: stock/serializers.py:650 msgid "Item is allocated to a sales order" @@ -6081,11 +6193,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6214,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6226,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6138,182 +6250,182 @@ msgstr "" #: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 msgid "Scan to Location" -msgstr "" +msgstr "Skanuj do lokacji" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" -msgstr "" +msgstr "Akcje druku" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" -msgstr "" +msgstr "Przelicz stan magazynowy" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" -msgstr "" +msgstr "Usuń stan magazynowy" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" -msgstr "" +msgstr "Przenieś stan magazynowy" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" -msgstr "" +msgstr "Odinstaluj" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" -msgstr "" +msgstr "Zainstaluj" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" -msgstr "" +msgstr "poprzednia strona" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" -msgstr "" +msgstr "następna strona" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "Termin minął" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "Ostatnia aktualizacja" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Lokacje nie są ustawione" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "Skaner kodów" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" -msgstr "" +msgstr "Element nadrzędny" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" -msgstr "" +msgstr "Nie ustawiono producenta" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" -msgstr "" +msgstr "Testy" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" -msgstr "" +msgstr "Tylko do odczytu" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,65 +6446,58 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Edytuj lokację" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Nowa lokalizacja" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" -msgstr "" - -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Drukuj etykiety" +msgstr "Lokacje stanu magazynowego" #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" @@ -6428,7 +6533,7 @@ msgstr "" #: stock/templates/stock/stock_app_base.html:16 msgid "Loading..." -msgstr "" +msgstr "Ładowanie..." #: stock/templates/stock/stock_sidebar.html:5 msgid "Stock Tracking" @@ -6440,7 +6545,7 @@ msgstr "" #: stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" -msgstr "" +msgstr "Elementy podrzędne" #: stock/templates/stock/stock_uninstall.html:8 msgid "The following stock items will be uninstalled" @@ -6467,11 +6572,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6481,7 +6586,7 @@ msgstr "" #: stock/views.py:293 msgid "Return to Stock" -msgstr "" +msgstr "Wróć do stanu magazynowego" #: stock/views.py:302 msgid "Specify a valid location" @@ -6493,7 +6598,7 @@ msgstr "" #: stock/views.py:324 msgid "Delete All Test Data" -msgstr "" +msgstr "Usuń wszystkie dane testowe" #: stock/views.py:341 msgid "Confirm test data deletion" @@ -6511,7 +6616,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6624,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Utwórz nową lokalizację magazynową" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "Ilość nie może być ujemna" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "Odmowa dostępu" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "Nie masz uprawnień do przeglądania tej strony." -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6601,15 +6707,15 @@ msgstr "Indeks" #: templates/InvenTree/index.html:88 msgid "Subscribed Parts" -msgstr "" +msgstr "Obserwowane elementy" #: templates/InvenTree/index.html:98 msgid "Subscribed Categories" -msgstr "" +msgstr "Obserwowane kategorie" #: templates/InvenTree/index.html:108 msgid "Latest Parts" -msgstr "" +msgstr "Najnowsze części" #: templates/InvenTree/index.html:119 msgid "BOM Waiting Validation" @@ -6621,6 +6727,10 @@ msgstr "" #: templates/InvenTree/index.html:168 msgid "Depleted Stock" +msgstr "Wyczerpane stany magazynowe" + +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" msgstr "" #: templates/InvenTree/index.html:191 @@ -6655,13 +6765,77 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "ID" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "Wiadomość" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" -msgstr "" +msgstr "Wyniki wyszukiwania" #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "Ustawienia kodu kreskowego" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" @@ -6669,74 +6843,74 @@ msgstr "" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" -msgstr "" +msgstr "Ustawienia kategorii" #: templates/InvenTree/settings/currencies.html:8 msgid "Currency Settings" -msgstr "" +msgstr "Ustawienia walut" #: templates/InvenTree/settings/currencies.html:19 msgid "Base Currency" -msgstr "" +msgstr "Waluta bazowa" #: templates/InvenTree/settings/currencies.html:24 msgid "Exchange Rates" -msgstr "" +msgstr "Kurs wymiany" #: templates/InvenTree/settings/currencies.html:38 msgid "Last Update" -msgstr "" +msgstr "Ostatnia Aktualizacja" #: templates/InvenTree/settings/currencies.html:44 msgid "Never" -msgstr "" +msgstr "Nigdy" #: templates/InvenTree/settings/currencies.html:49 msgid "Update Now" -msgstr "" +msgstr "Aktualizuj teraz" #: templates/InvenTree/settings/global.html:9 msgid "Server Settings" -msgstr "" +msgstr "Ustawienia serwera" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" -msgstr "" +msgstr "Ustawienia logowania" #: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" -msgstr "" +msgstr "Rejestracja" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" -msgstr "" +msgstr "Ustawienia" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "Adresy URL" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format msgid "The Base-URL for this plugin is %(base)s." -msgstr "" +msgstr "Podstawowy adres URL dla tej wtyczki to %(base)s." #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "Otwórz w nowej karcie" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "Ustawienia części" #: templates/InvenTree/settings/part.html:44 msgid "Part Import" -msgstr "" +msgstr "Import części" #: templates/InvenTree/settings/part.html:48 msgid "Import Part" -msgstr "" +msgstr "Import części" #: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" @@ -6747,115 +6921,115 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" -msgstr "" +msgstr "Wtyczki" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" -msgstr "" +msgstr "Instaluj wtyczkę" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" -msgstr "" +msgstr "Admin" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" -msgstr "" +msgstr "Autor" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" +msgstr "Wersja" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" -msgstr "" +msgstr "Nieaktywne wtyczki" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" -msgstr "" +msgstr "Błąd stosu wtyczki" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" -msgstr "" - -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" +msgstr "Etap" #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" -msgstr "" +msgstr "Szczegóły wtyczki dla %(name)s" #: templates/InvenTree/settings/plugin_settings.html:17 msgid "Plugin information" -msgstr "" +msgstr "Informacje o wtyczce" #: templates/InvenTree/settings/plugin_settings.html:48 msgid "no version information supplied" -msgstr "" +msgstr "brak dostarczonych informacji o wersji" #: templates/InvenTree/settings/plugin_settings.html:62 msgid "License" -msgstr "" +msgstr "Licencja" #: templates/InvenTree/settings/plugin_settings.html:71 msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." -msgstr "" +msgstr "Informacje o kodzie są pobierane z najnowszego commita git dla tej wtyczki. Może on nie odzwierciedlać oficjalnych numerów wersji lub informacji, ale faktyczny uruchomiony kod." #: templates/InvenTree/settings/plugin_settings.html:77 msgid "Package information" -msgstr "" +msgstr "Informacje o pakiecie" #: templates/InvenTree/settings/plugin_settings.html:83 msgid "Installation method" -msgstr "" +msgstr "Sposób instalacji" #: templates/InvenTree/settings/plugin_settings.html:86 msgid "This plugin was installed as a package" -msgstr "" +msgstr "Ta wtyczka została zainstalowana jako pakiet" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 msgid "Installation path" -msgstr "" +msgstr "Ścieżka instalacji" #: templates/InvenTree/settings/plugin_settings.html:100 msgid "Commit Author" -msgstr "" +msgstr "Autor commitu" #: templates/InvenTree/settings/plugin_settings.html:104 #: templates/about.html:47 msgid "Commit Date" -msgstr "" +msgstr "Data commitu" #: templates/InvenTree/settings/plugin_settings.html:108 #: templates/about.html:40 msgid "Commit Hash" -msgstr "" +msgstr "Hash commitu" #: templates/InvenTree/settings/plugin_settings.html:112 msgid "Commit Message" -msgstr "" +msgstr "Wiadomość commitu" #: templates/InvenTree/settings/plugin_settings.html:117 msgid "Sign Status" -msgstr "" +msgstr "Status podpisu" #: templates/InvenTree/settings/plugin_settings.html:122 msgid "Sign Key" -msgstr "" +msgstr "Klucz podpisu" #: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" @@ -6864,98 +7038,94 @@ msgstr "" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 msgid "Report Settings" -msgstr "" +msgstr "Ustawienia raportu" #: templates/InvenTree/settings/setting.html:37 msgid "No value set" -msgstr "" +msgstr "Nie ustawiono wartości" #: templates/InvenTree/settings/setting.html:42 msgid "Edit setting" -msgstr "" +msgstr "Edytuj ustawienie" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" -msgstr "" +msgstr "Edytuj ustawienie wtyczki" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" -msgstr "" +msgstr "Edytuj ustawienie globalne" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" -msgstr "" +msgstr "Edytuj ustawienie użytkownika" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" -msgstr "" - -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" +msgstr "Nie znaleziono szablonów parametrów kategorii" #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "Edytuj szablon" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" -msgstr "" +msgstr "Usuń szablon" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" -msgstr "" - -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" +msgstr "Nie znaleziono szablonów parametrów części" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "Ustawienia użytkownika" #: templates/InvenTree/settings/sidebar.html:9 #: templates/InvenTree/settings/user.html:12 msgid "Account Settings" -msgstr "" +msgstr "Ustawienia konta" #: templates/InvenTree/settings/sidebar.html:11 #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "Ustawienia wyświetlania" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "Strona główna" #: templates/InvenTree/settings/sidebar.html:15 #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" - -#: templates/InvenTree/settings/sidebar.html:17 -msgid "Label Printing" -msgstr "" +msgstr "Ustawienia wyszukiwania" #: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +msgid "Label Printing" +msgstr "Drukowanie etykiet" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" -msgstr "" +msgstr "Raportowanie" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" -msgstr "" +msgstr "Ustawienia globalne" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" -msgstr "" +msgstr "Konfiguracja serwera" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" -msgstr "" +msgstr "Waluty" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" -msgstr "" +msgstr "Kategorie" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" @@ -6972,7 +7142,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7056,7 +7227,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:177 msgid "You have these factors available:" -msgstr "" +msgstr "Masz dostępne następujące czynniki:" #: templates/InvenTree/settings/user.html:187 msgid "TOTP" @@ -7064,7 +7235,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:193 msgid "Static" -msgstr "" +msgstr "Statyczny" #: templates/InvenTree/settings/user.html:202 msgid "You currently do not have any factors set up." @@ -7084,119 +7255,123 @@ msgstr "" #: templates/InvenTree/settings/user.html:220 msgid "Active Sessions" -msgstr "" +msgstr "Aktywne sesje" #: templates/InvenTree/settings/user.html:226 msgid "Log out active sessions (except this one)" -msgstr "" +msgstr "Wyloguj aktywne sesje (z wyjątkiem tej sesji)" #: templates/InvenTree/settings/user.html:227 msgid "Log Out Active Sessions" -msgstr "" +msgstr "Wyloguj aktywne sesje" #: templates/InvenTree/settings/user.html:236 msgid "unknown on unknown" -msgstr "" +msgstr "nieznany na nieznanym" #: templates/InvenTree/settings/user.html:237 msgid "unknown" -msgstr "" +msgstr "nieznany" #: templates/InvenTree/settings/user.html:241 msgid "IP Address" -msgstr "" +msgstr "Adres IP" #: templates/InvenTree/settings/user.html:242 msgid "Device" -msgstr "" +msgstr "Urządzenie" #: templates/InvenTree/settings/user.html:243 msgid "Last Activity" -msgstr "" +msgstr "Ostatnia aktywność" #: templates/InvenTree/settings/user.html:252 #, python-format msgid "%(time)s ago (this session)" -msgstr "" +msgstr "%(time)s temu (ta sesja)" #: templates/InvenTree/settings/user.html:254 #, python-format msgid "%(time)s ago" -msgstr "" +msgstr "%(time)s temu" #: templates/InvenTree/settings/user.html:266 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "Czy na pewno chcesz usunąć wybrany adres e-mail?" #: templates/InvenTree/settings/user_display.html:27 msgid "Theme Settings" -msgstr "" +msgstr "Ustawienia motywu" #: templates/InvenTree/settings/user_display.html:37 msgid "Select theme" -msgstr "" +msgstr "Wybierz motyw" #: templates/InvenTree/settings/user_display.html:48 msgid "Set Theme" -msgstr "" +msgstr "Ustaw motyw" #: templates/InvenTree/settings/user_display.html:56 msgid "Language Settings" -msgstr "" +msgstr "Ustawienia języka" #: templates/InvenTree/settings/user_display.html:65 msgid "Select language" -msgstr "" +msgstr "Wybierz język" #: templates/InvenTree/settings/user_display.html:81 #, python-format msgid "%(lang_translated)s%% translated" -msgstr "" +msgstr "%(lang_translated)s%% przetłumaczony" #: templates/InvenTree/settings/user_display.html:83 msgid "No translations available" -msgstr "" +msgstr "Brak dostępnych tłumaczeń" #: templates/InvenTree/settings/user_display.html:90 msgid "Set Language" -msgstr "" +msgstr "Ustaw język" #: templates/InvenTree/settings/user_display.html:93 msgid "Some languages are not complete" -msgstr "" +msgstr "Niektóre języki nie są kompletne" #: templates/InvenTree/settings/user_display.html:95 msgid "Show only sufficent" -msgstr "" +msgstr "Pokaż tylko wystarczające" #: templates/InvenTree/settings/user_display.html:97 msgid "and hidden." -msgstr "" +msgstr "i ukryty." #: templates/InvenTree/settings/user_display.html:97 msgid "Show them too" -msgstr "" +msgstr "Pokaż je także" #: templates/InvenTree/settings/user_display.html:103 msgid "Help the translation efforts!" -msgstr "" +msgstr "Pomóż w tłumaczeniu!" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "Ustawienia strony głównej" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" +msgstr "Ustawienia etykiet" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" msgstr "" #: templates/about.html:10 msgid "InvenTree Version Information" -msgstr "" +msgstr "Informacje o wersji InvenTree" #: templates/about.html:11 templates/about.html:105 #: templates/js/translated/bom.js:132 templates/js/translated/bom.js:620 @@ -7205,184 +7380,179 @@ msgstr "" #: templates/modals.html:15 templates/modals.html:27 templates/modals.html:39 #: templates/modals.html:50 msgid "Close" -msgstr "" +msgstr "Zamknij" #: templates/about.html:20 msgid "InvenTree Version" -msgstr "" +msgstr "Wersja InvenTree" #: templates/about.html:25 msgid "Development Version" -msgstr "" +msgstr "Wersja rozwojowa" #: templates/about.html:28 msgid "Up to Date" -msgstr "" +msgstr "Aktualna" #: templates/about.html:30 msgid "Update Available" -msgstr "" +msgstr "Dostępna aktualizacja" #: templates/about.html:53 msgid "InvenTree Documentation" -msgstr "" +msgstr "Dokumentacja InvenTree" #: templates/about.html:58 msgid "API Version" -msgstr "" +msgstr "Wersja interfejsu API" #: templates/about.html:63 msgid "Python Version" -msgstr "" +msgstr "Wersja Pythona" #: templates/about.html:68 msgid "Django Version" -msgstr "" +msgstr "Wersja Django" #: templates/about.html:73 msgid "View Code on GitHub" -msgstr "" +msgstr "Zobacz kod na GitHub" #: templates/about.html:78 msgid "Credits" -msgstr "" +msgstr "Autorzy" #: templates/about.html:83 msgid "Mobile App" -msgstr "" +msgstr "Aplikacja mobilna" #: templates/about.html:88 msgid "Submit Bug Report" -msgstr "" +msgstr "Prześlij raport o błędzie" #: templates/about.html:95 templates/clip.html:4 msgid "copy to clipboard" -msgstr "" +msgstr "skopiuj do schowka" #: templates/about.html:95 msgid "copy version information" -msgstr "" +msgstr "kopiuj informacje o wersji" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:10 msgid "Confirm Email Address" -msgstr "" +msgstr "Potwierdź adres e-mail" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "Proszę potwierdzić że %(email)s jest adresem e-mail dla użytkownika %(user_display)s." #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "Ten link potwierdzający adres e-mail wygasł, bądź jest nieprawidłowy. Proszę o zażądanie nowego e-maila potwierdzającego adres e-mail." -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" -msgstr "" +msgstr "Zaloguj się" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" -msgstr "" +msgstr "Zaloguj się za pomocą jednego\n" +"istniejących kont stron trzecich lub zarejestruj się\n" +"w celu założenia konta i zaloguj się poniżej:" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." -msgstr "" +msgstr "Jeżeli jeszcze nie utworzyłeś konta, to proszę najpierw\n" +"zarejstruj się." -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" -msgstr "" +msgstr "Zapomniałeś hasła?" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" -msgstr "" +msgstr "lub użyj SSO" #: templates/account/logout.html:5 templates/account/logout.html:8 #: templates/account/logout.html:20 msgid "Sign Out" -msgstr "" +msgstr "Wyloguj się" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "Jesteś pewien, że chcesz się wylogować?" #: templates/account/logout.html:19 msgid "Back to Site" -msgstr "" +msgstr "Powrót do witryny" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 msgid "Password Reset" -msgstr "" +msgstr "Resetowanie hasła" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." -msgstr "" +msgstr "Zapomniałeś/-aś swojego hasła? Wpisz poniżej swój adres e-mail, a my wyślemy do Ciebie e-mail umożliwiający zresetowanie hasła." #: templates/account/password_reset.html:23 msgid "Reset My Password" -msgstr "" +msgstr "Zresetuj moje hasło" #: templates/account/password_reset.html:27 templates/account/signup.html:36 msgid "This function is currently disabled. Please contact an administrator." -msgstr "" +msgstr "Ta funkcja jest obecnie wyłączona. Skontaktuj się z administratorem." #: templates/account/password_reset_from_key.html:7 msgid "Bad Token" -msgstr "" +msgstr "Zły token" #: templates/account/password_reset_from_key.html:11 #, python-format msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "" +msgstr "Link resetu hasła jest nieprawidłowy, prawdopodobnie z powodu wcześniejszego użycia. Zażądaj nowego resetu hasła, proszę." #: templates/account/password_reset_from_key.html:18 msgid "Change password" -msgstr "" +msgstr "Zmień hasło" #: templates/account/password_reset_from_key.html:22 msgid "Your password is now changed." -msgstr "" +msgstr "Twoje hasło zostało zmienione." #: templates/account/signup.html:11 templates/account/signup.html:22 msgid "Sign Up" -msgstr "" +msgstr "Zarejestruj się" #: templates/account/signup.html:13 #, python-format msgid "Already have an account? Then please sign in." -msgstr "" +msgstr "Masz już konto? Jeżeli tak, to zaloguj się." #: templates/account/signup.html:27 msgid "Or use a SSO-provider for signup" -msgstr "" +msgstr "Lub użyj dostawcy SSO w celu rejestracji" #: templates/admin_button.html:2 msgid "View in administration panel" -msgstr "" +msgstr "Zobacz w panelu administracyjnym" #: templates/allauth_2fa/authenticate.html:5 msgid "Two-Factor Authentication" -msgstr "" +msgstr "Uwierzytelnianie dwuskładnikowe" #: templates/allauth_2fa/authenticate.html:12 msgid "Authenticate" -msgstr "" +msgstr "Uwierzytelnij" #: templates/allauth_2fa/backup_tokens.html:6 msgid "Two-Factor Authentication Backup Tokens" @@ -7403,63 +7573,63 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 msgid "Back to settings" -msgstr "" +msgstr "Powrót do ustawień" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" -msgstr "" +msgstr "Wyłącz uwierzytelnianie dwuskładnikowe" #: templates/allauth_2fa/remove.html:9 msgid "Are you sure?" -msgstr "" +msgstr "Jesteś pewny?" #: templates/allauth_2fa/remove.html:14 msgid "Disable Two-Factor" -msgstr "" +msgstr "Wyłącz dwuskładnikowe" #: templates/allauth_2fa/setup.html:6 msgid "Setup Two-Factor Authentication" -msgstr "" +msgstr "Skonfiguruj uwierzytelnianie dwuskładnikowe" #: templates/allauth_2fa/setup.html:10 msgid "Step 1" -msgstr "" +msgstr "Krok 1" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." -msgstr "" +msgstr "Zeskanuj poniższy kod QR za pomocą wybranego przez Ciebie generatora tokenów (np. Google Authenticator)." #: templates/allauth_2fa/setup.html:23 msgid "Step 2" -msgstr "" +msgstr "Krok 2" #: templates/allauth_2fa/setup.html:27 msgid "Input a token generated by the app:" -msgstr "" +msgstr "Wprowadź token wygenerowany przez aplikację:" #: templates/allauth_2fa/setup.html:35 msgid "Verify" -msgstr "" +msgstr "Zweryfikuj" #: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 msgid "Add Link" -msgstr "" +msgstr "Dodaj link" #: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 msgid "Add Attachment" msgstr "Dodaj załącznik" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" -msgstr "" +msgstr "Wymagane ponowne uruchomienie serwera" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" -msgstr "" +msgstr "Zmieniono opcję konfiguracji, która wymaga ponownego uruchomienia serwera" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" -msgstr "" +msgstr "Skontaktuj się z administratorem systemu w celu uzyskania dalszych informacji" #: templates/email/build_order_required_stock.html:7 msgid "Stock is required for the following build order" @@ -7479,14 +7649,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" -msgstr "" +msgstr "Wymagana ilość" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Dostępne" @@ -7494,16 +7665,7 @@ msgstr "Dostępne" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:31 msgid "You are receiving this email because you are subscribed to notifications for this part " -msgstr "" - -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" +msgstr "Otrzymujesz tę wiadomość, ponieważ masz włączone powiadomienia dla tej części " #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" @@ -7511,91 +7673,91 @@ msgstr "" #: templates/email/low_stock_notification.html:19 msgid "Minimum Quantity" -msgstr "" +msgstr "Minimalna ilość" #: templates/image_download.html:8 msgid "Specify URL for downloading image" -msgstr "" +msgstr "Określ adres URL do pobrania obrazu" #: templates/image_download.html:11 msgid "Must be a valid image URL" -msgstr "" +msgstr "Musi być prawidłowym adresem URL" #: templates/image_download.html:12 msgid "Remote server must be accessible" -msgstr "" +msgstr "Zdalny serwer musi być dostępny" #: templates/image_download.html:13 msgid "Remote image must not exceed maximum allowable file size" -msgstr "" +msgstr "Zewnętrzne zdjęcie nie może przekraczać maksymalnego dopuszczalnego rozmiaru pliku" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" -msgstr "" +msgstr "Brak odpowiedzi" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" -msgstr "" +msgstr "Brak odpowiedzi z serwera InvenTree" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" -msgstr "" +msgstr "Błąd 400: Błędne żądanie" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" -msgstr "" +msgstr "Żądanie interfejsu API zwróciło kod błędu 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" -msgstr "" +msgstr "Błąd 401: Nieuwierzytelniony" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" -msgstr "" +msgstr "Dane uwierzytelniające nie zostały dostarczone" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "Błąd 403: Odmowa dostępu" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" -msgstr "" +msgstr "Błąd 404: Nie znaleziono zasobu" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" -msgstr "" +msgstr "Żądany zasób nie mógł być zlokalizowany na serwerze" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" -msgstr "" +msgstr "Błąd 405: Metoda nie jest dozwolona" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" -msgstr "" +msgstr "Metoda HTTP nie jest dozwolona pod tym adresem URL" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" -msgstr "" +msgstr "Błąd 408: Przekroczony limit czasu" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" -msgstr "" +msgstr "Limit czasu połączenia podczas żądania danych z serwera" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" -msgstr "" +msgstr "Nieobsługiwany kod błędu" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" -msgstr "" +msgstr "Kod błędu" #: templates/js/translated/attachment.js:78 msgid "No attachments found" -msgstr "" +msgstr "Nie znaleziono załączników" #: templates/js/translated/attachment.js:100 msgid "Edit Attachment" @@ -7603,7 +7765,7 @@ msgstr "Edytuj załącznik" #: templates/js/translated/attachment.js:110 msgid "Confirm Delete" -msgstr "" +msgstr "Potwierdź usunięcie" #: templates/js/translated/attachment.js:111 msgid "Delete Attachment" @@ -7611,27 +7773,27 @@ msgstr "Usuń załącznik" #: templates/js/translated/attachment.js:167 msgid "Upload Date" -msgstr "" +msgstr "Data przesłania" #: templates/js/translated/attachment.js:183 msgid "Edit attachment" -msgstr "" +msgstr "Edytuj załącznik" #: templates/js/translated/attachment.js:190 msgid "Delete attachment" -msgstr "" +msgstr "Usuń załącznik" #: templates/js/translated/barcode.js:29 msgid "Scan barcode data here using wedge scanner" -msgstr "" +msgstr "Zeskanuj dane kodu kreskowego tutaj za pomocą skanera" #: templates/js/translated/barcode.js:31 msgid "Enter barcode data" -msgstr "" +msgstr "Wprowadź dane kodu kreskowego" #: templates/js/translated/barcode.js:35 msgid "Barcode" -msgstr "" +msgstr "Kod kreskowy" #: templates/js/translated/barcode.js:53 msgid "Enter optional notes for stock transfer" @@ -7639,32 +7801,32 @@ msgstr "" #: templates/js/translated/barcode.js:54 msgid "Enter notes" -msgstr "" +msgstr "Wprowadź notatki" #: templates/js/translated/barcode.js:92 msgid "Server error" -msgstr "" +msgstr "Błąd serwera" #: templates/js/translated/barcode.js:113 msgid "Unknown response from server" -msgstr "" +msgstr "Nieznana odpowiedź serwera" #: templates/js/translated/barcode.js:140 #: templates/js/translated/modals.js:1046 msgid "Invalid server response" -msgstr "" +msgstr "Niepoprawna odpowiedź serwera" #: templates/js/translated/barcode.js:233 msgid "Scan barcode data below" -msgstr "" +msgstr "Zeskanuj dane kodu kreskowego poniżej" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" -msgstr "" +msgstr "Zeskanuj kod kreskowy" #: templates/js/translated/barcode.js:291 msgid "No URL in response" -msgstr "" +msgstr "Brak adresu URL w odpowiedzi" #: templates/js/translated/barcode.js:309 msgid "Link Barcode to Stock Item" @@ -7676,57 +7838,56 @@ msgstr "" #: templates/js/translated/barcode.js:338 msgid "Unlink" -msgstr "" +msgstr "Rozłącz" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" +msgstr "Sprawdź" + +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" -msgstr "" - -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" #: templates/js/translated/bom.js:75 msgid "Display row data" -msgstr "" +msgstr "Wyświetl dane wiersza" #: templates/js/translated/bom.js:131 msgid "Row Data" -msgstr "" +msgstr "Dane wiersza" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" @@ -7735,12 +7896,12 @@ msgstr "" #: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 #: templates/js/translated/order.js:429 templates/js/translated/tables.js:53 msgid "Format" -msgstr "" +msgstr "Format" #: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287 #: templates/js/translated/order.js:430 msgid "Select file format" -msgstr "" +msgstr "Wybierz format pliku" #: templates/js/translated/bom.js:294 msgid "Cascading" @@ -7808,73 +7969,90 @@ msgstr "" #: templates/js/translated/bom.js:621 msgid "Add Substitute" -msgstr "" +msgstr "Dodaj zamiennik" #: templates/js/translated/bom.js:622 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" -msgstr "" +msgstr "Zobacz BOM" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,14 +8077,14 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" -msgstr "" +msgstr "Ostatni numer seryjny" #: templates/js/translated/build.js:226 msgid "The Bill of Materials contains trackable parts" @@ -7962,7 +8140,7 @@ msgstr "" #: templates/js/translated/build.js:416 templates/js/translated/build.js:564 msgid "Output" -msgstr "" +msgstr "Wyjście" #: templates/js/translated/build.js:432 msgid "Complete Build Outputs" @@ -7984,147 +8162,155 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "Ilość za" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "Przydzielono" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" -msgstr "" +msgstr "ładowanie" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" -msgstr "" +msgstr "Wybierz części" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Potwierdź przydział zapasów" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" -msgstr "" +msgstr "Wybierz" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" -msgstr "" +msgstr "Brak informacji o użytkowniku" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" -msgstr "" +msgstr "Brak informacji" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" #: templates/js/translated/company.js:65 msgid "Add Manufacturer" -msgstr "" +msgstr "Dodaj producenta" #: templates/js/translated/company.js:78 templates/js/translated/company.js:177 msgid "Add Manufacturer Part" @@ -8140,7 +8326,7 @@ msgstr "" #: templates/js/translated/company.js:165 templates/js/translated/order.js:248 msgid "Add Supplier" -msgstr "" +msgstr "Dodaj dostawcę" #: templates/js/translated/company.js:193 msgid "Add Supplier Part" @@ -8183,36 +8369,36 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" -msgstr "" +msgstr "Nie znaleziono parametrów" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" -msgstr "" +msgstr "Edytuj Parametr" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" -msgstr "" +msgstr "Usuń parametr" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" -msgstr "" +msgstr "Edytuj Parametr" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" -msgstr "" +msgstr "Usuń parametr" #: templates/js/translated/company.js:737 msgid "No supplier parts found" @@ -8221,24 +8407,24 @@ msgstr "" #: templates/js/translated/filters.js:178 #: templates/js/translated/filters.js:441 msgid "true" -msgstr "" +msgstr "prawda" #: templates/js/translated/filters.js:182 #: templates/js/translated/filters.js:442 msgid "false" -msgstr "" +msgstr "fałsz" #: templates/js/translated/filters.js:204 msgid "Select filter" -msgstr "" +msgstr "Wybierz filtr" #: templates/js/translated/filters.js:288 msgid "Download data" -msgstr "" +msgstr "Pobierz dane" #: templates/js/translated/filters.js:291 msgid "Reload data" -msgstr "" +msgstr "Przeładuj dane" #: templates/js/translated/filters.js:295 msgid "Add new filter" @@ -8246,222 +8432,250 @@ msgstr "Dodaj nowy filtr" #: templates/js/translated/filters.js:298 msgid "Clear all filters" -msgstr "" +msgstr "Wyczyść wszystkie filtry" #: templates/js/translated/filters.js:350 msgid "Create filter" -msgstr "" +msgstr "Utwórz filtr" #: templates/js/translated/forms.js:351 templates/js/translated/forms.js:366 #: templates/js/translated/forms.js:380 templates/js/translated/forms.js:394 msgid "Action Prohibited" -msgstr "" +msgstr "Działanie zabronione" #: templates/js/translated/forms.js:353 msgid "Create operation not allowed" -msgstr "" +msgstr "Operacja utworzenia nie jest dozwolona" #: templates/js/translated/forms.js:368 msgid "Update operation not allowed" -msgstr "" +msgstr "Operacja aktualizacji nie jest dozwolona" #: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" -msgstr "" +msgstr "Operacja usuwania nie jest dozwolona" #: templates/js/translated/forms.js:396 msgid "View operation not allowed" -msgstr "" +msgstr "Operacja przeglądania nie jest dozwolona" #: templates/js/translated/forms.js:627 msgid "Keep this form open" -msgstr "" +msgstr "Pozostaw ten formularz otwarty" #: templates/js/translated/forms.js:702 msgid "Enter a valid number" -msgstr "" +msgstr "Wprowadź poprawny numer" #: templates/js/translated/forms.js:1194 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" -msgstr "" +msgstr "Istnieją błędy formularza" #: templates/js/translated/forms.js:1623 msgid "No results found" -msgstr "" +msgstr "Nie znaleziono wyników" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" -msgstr "" +msgstr "Wyszukiwanie" #: templates/js/translated/forms.js:2082 msgid "Clear input" -msgstr "" +msgstr "Wyczyść wejście" #: templates/js/translated/forms.js:2547 msgid "File Column" -msgstr "" +msgstr "Kolumna pliku" #: templates/js/translated/forms.js:2547 msgid "Field Name" -msgstr "" +msgstr "Nazwa pola" #: templates/js/translated/forms.js:2559 msgid "Select Columns" -msgstr "" +msgstr "Wybór Kolumn" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" -msgstr "" +msgstr "TAK" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" +msgstr "Nie" + +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" -msgstr "" +msgstr "Wybierz przedmioty magazynowe" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" -msgstr "" +msgstr "Nie znaleziono etykiet" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" -msgstr "" +msgstr "Wybierz szablon etykiety" #: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 #: templates/js/translated/modals.js:610 msgid "Cancel" -msgstr "" +msgstr "Anuluj" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 #: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" -msgstr "" +msgstr "Zatwierdź" #: templates/js/translated/modals.js:118 msgid "Form Title" -msgstr "" +msgstr "Tytuł formularza" #: templates/js/translated/modals.js:392 msgid "Waiting for server..." -msgstr "" +msgstr "Oczekiwanie na serwer..." #: templates/js/translated/modals.js:551 msgid "Show Error Information" -msgstr "" +msgstr "Pokaż informacje o błędzie" #: templates/js/translated/modals.js:609 msgid "Accept" -msgstr "" +msgstr "Zaakceptuj" #: templates/js/translated/modals.js:666 msgid "Loading Data" -msgstr "" +msgstr "Wczytywanie danych" #: templates/js/translated/modals.js:937 msgid "Invalid response from server" -msgstr "" +msgstr "Niepoprawna odpowiedź serwera" #: templates/js/translated/modals.js:937 msgid "Form data missing from server response" -msgstr "" +msgstr "Brak danych formularza z odpowiedzi serwera" #: templates/js/translated/modals.js:949 msgid "Error posting form data" -msgstr "" +msgstr "Błąd podczas wysyłania danych formularza" #: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" -msgstr "" +msgstr "Brak danych w formularzu odpowiedzi JSON" #: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" -msgstr "" +msgstr "400: Nieprawidłowe zapytanie" #: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" -msgstr "" +msgstr "Serwer zwrócił kod błędu 400" #: templates/js/translated/modals.js:1085 msgid "Error requesting form data" -msgstr "" +msgstr "Błąd podczas żądania danych formularza" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" -msgstr "" +msgstr "ID firmy" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" -msgstr "" +msgstr "ID lokalizacji" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" -msgstr "" +msgstr "ID zamówienia" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" -msgstr "" +msgstr "ID wysyłki" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" -msgstr "" +msgstr "ID kategorii" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" +msgstr "ID części dostawcy" + +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" msgstr "" #: templates/js/translated/order.js:75 @@ -8516,7 +8730,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8526,21 +8740,21 @@ msgstr "Kod zamówienia" #: templates/js/translated/order.js:713 msgid "Ordered" -msgstr "" +msgstr "Zamówione" #: templates/js/translated/order.js:715 msgid "Quantity to Receive" -msgstr "" +msgstr "Ilość do otrzymania" #: templates/js/translated/order.js:734 msgid "Confirm receipt of items" -msgstr "" +msgstr "Potwierdź odbiór elementów" #: templates/js/translated/order.js:735 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8566,23 +8780,23 @@ msgstr "" #: templates/js/translated/order.js:1187 templates/js/translated/order.js:2335 msgid "Total" -msgstr "" +msgstr "Razem" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "Cena jednostkowa" #: templates/js/translated/order.js:1256 templates/js/translated/order.js:2376 msgid "Total Price" -msgstr "" +msgstr "Cena całkowita" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8600,47 +8814,47 @@ msgstr "" #: templates/js/translated/order.js:1402 msgid "No sales orders found" -msgstr "" +msgstr "Nie znaleziono zamówień sprzedaży" #: templates/js/translated/order.js:1440 msgid "Invalid Customer" -msgstr "" +msgstr "Nieprawidłowy klient" #: templates/js/translated/order.js:1527 msgid "Edit shipment" -msgstr "" +msgstr "Edytuj wysyłkę" #: templates/js/translated/order.js:1530 msgid "Complete shipment" -msgstr "" +msgstr "Kompletna wysyłka" #: templates/js/translated/order.js:1535 msgid "Delete shipment" -msgstr "" +msgstr "Usuń wysyłkę" #: templates/js/translated/order.js:1555 msgid "Edit Shipment" -msgstr "" +msgstr "Edytuj wysyłkę" #: templates/js/translated/order.js:1572 msgid "Delete Shipment" -msgstr "" +msgstr "Usuń wysyłkę" #: templates/js/translated/order.js:1606 msgid "No matching shipments found" -msgstr "" +msgstr "Nie odnaleziono pasujących przesyłek" #: templates/js/translated/order.js:1616 msgid "Shipment Reference" -msgstr "" +msgstr "Numer referencyjny przesyłki" #: templates/js/translated/order.js:1640 msgid "Not shipped" -msgstr "" +msgstr "Nie wysłano" #: templates/js/translated/order.js:1646 msgid "Tracking" -msgstr "" +msgstr "Śledzenie" #: templates/js/translated/order.js:1806 msgid "Allocate Stock Items to Sales Order" @@ -8663,7 +8877,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8705,7 +8919,7 @@ msgstr "" #: templates/js/translated/part.js:55 msgid "Part Attributes" -msgstr "" +msgstr "Atrybuty części" #: templates/js/translated/part.js:59 msgid "Part Creation Options" @@ -8753,7 +8967,7 @@ msgstr "" #: templates/js/translated/part.js:208 msgid "Add Supplier Data" -msgstr "" +msgstr "Dodaj dane dostawcy" #: templates/js/translated/part.js:209 msgid "Create initial supplier data for this part" @@ -8761,7 +8975,7 @@ msgstr "" #: templates/js/translated/part.js:265 msgid "Copy Image" -msgstr "" +msgstr "Kopiuj obraz" #: templates/js/translated/part.js:266 msgid "Copy image from original part" @@ -8773,7 +8987,7 @@ msgstr "" #: templates/js/translated/part.js:281 msgid "Copy Parameters" -msgstr "" +msgstr "Kopiuj parametry" #: templates/js/translated/part.js:282 msgid "Copy parameter data from original part" @@ -8783,169 +8997,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" -msgstr "" +msgstr "Edytuj część" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" -msgstr "" +msgstr "Część zmodyfikowana" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" -msgstr "" +msgstr "Utwórz wariant części" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" -msgstr "" +msgstr "Masz włączone powiadomienia dla tej części" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" -msgstr "" +msgstr "Masz włączone powiadomienia dla tej części" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" -msgstr "" +msgstr "Włącz powiadomienia dla tej części" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" -msgstr "" +msgstr "Zostałeś wypisany z powiadomień dla tej części" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "Obserwowane części" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Nie znaleziono wariantów" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "Nie znaleziono części" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Brak kategorii" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" -msgstr "" +msgstr "Wyświetl jako listę" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" -msgstr "" +msgstr "Wyświetl jako siatkę" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" -msgstr "" +msgstr "Wyświetl jako drzewo" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" -msgstr "" +msgstr "Obserwowana kategoria" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" -msgstr "" +msgstr "Ścieżka" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" -msgstr "" +msgstr "Nie znaleziono informacji o ${human_name}" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" -msgstr "" +msgstr "Edytuj ${human_name}" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" -msgstr "" +msgstr "Usuń ${human_name}" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "Cena jednostkowa" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9241,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9261,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" -msgstr "" +msgstr "Przenieś" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" -msgstr "" +msgstr "Weź" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" -msgstr "" +msgstr "Usuń stan magazynowy" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" -msgstr "" +msgstr "BRAK WYNIKÓW" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" -msgstr "" +msgstr "Dodaj wynik testu" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" -msgstr "" +msgstr "W produkcji" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" -msgstr "" +msgstr "Kod statusu musi być wybrany" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "Szczegóły" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" -msgstr "" +msgstr "Lokalizacja już nie istnieje" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" -msgstr "" +msgstr "Zamówienie zakupu już nie istnieje" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" -msgstr "" +msgstr "Klient już nie istnieje" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" -msgstr "" +msgstr "Element magazynowy już nie istnieje" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "Dodano" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" -msgstr "" +msgstr "Usunięto" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9382,7 +9596,7 @@ msgstr "" #: templates/js/translated/table_filters.js:64 msgid "Validated" -msgstr "" +msgstr "Zatwierdzone" #: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" @@ -9391,7 +9605,7 @@ msgstr "" #: templates/js/translated/table_filters.js:110 #: templates/js/translated/table_filters.js:183 msgid "Include sublocations" -msgstr "" +msgstr "Uwzględnij podlokalizacje" #: templates/js/translated/table_filters.js:111 msgid "Include locations" @@ -9399,14 +9613,14 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" -msgstr "" +msgstr "Obesrwowane" #: templates/js/translated/table_filters.js:136 #: templates/js/translated/table_filters.js:218 @@ -9438,17 +9652,17 @@ msgstr "" #: templates/js/translated/table_filters.js:221 #: templates/js/translated/table_filters.js:222 msgid "Serial number" -msgstr "" +msgstr "Numer seryjny" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" -msgstr "" +msgstr "Kod partii" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" -msgstr "" +msgstr "Aktywne części" #: templates/js/translated/table_filters.js:164 msgid "Show stock for active parts" @@ -9456,15 +9670,15 @@ msgstr "" #: templates/js/translated/table_filters.js:169 msgid "Part is an assembly" -msgstr "" +msgstr "Część jest zespołem" #: templates/js/translated/table_filters.js:173 msgid "Is allocated" -msgstr "" +msgstr "Jest przydzielony" #: templates/js/translated/table_filters.js:174 msgid "Item has been allocated" -msgstr "" +msgstr "Przedmiot został przydzielony" #: templates/js/translated/table_filters.js:179 msgid "Stock is available for use" @@ -9484,7 +9698,7 @@ msgstr "" #: templates/js/translated/table_filters.js:198 msgid "In Production" -msgstr "" +msgstr "W produkcji" #: templates/js/translated/table_filters.js:199 msgid "Show items which are in production" @@ -9492,7 +9706,7 @@ msgstr "" #: templates/js/translated/table_filters.js:203 msgid "Include Variants" -msgstr "" +msgstr "Obejmuje warianty" #: templates/js/translated/table_filters.js:204 msgid "Include stock items for variant parts" @@ -9500,7 +9714,7 @@ msgstr "" #: templates/js/translated/table_filters.js:208 msgid "Installed" -msgstr "" +msgstr "Zainstalowane" #: templates/js/translated/table_filters.js:209 msgid "Show stock items which are installed in another item" @@ -9515,251 +9729,308 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 -msgid "Has purchase price" +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 +msgid "Has purchase price" +msgstr "Posiada cenę zakupu" + +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "Test pomyślny" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" -msgstr "" +msgstr "Przypisane do mnie" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" -msgstr "" +msgstr "Status zamówienia" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" -msgstr "" +msgstr "Posiada IPN" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" -msgstr "" +msgstr "Część posiada wewnętrzny numer części" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" +msgstr "Pokaż aktywne części" + +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" -msgstr "" +msgstr "Możliwość zakupu" #: templates/js/translated/tables.js:50 msgid "Export Table Data" -msgstr "" +msgstr "Eksportuj dane tabeli" #: templates/js/translated/tables.js:54 msgid "Select File Format" -msgstr "" +msgstr "Wybierz format pliku" #: templates/js/translated/tables.js:433 msgid "Loading data" -msgstr "" +msgstr "Wczytywanie danych" #: templates/js/translated/tables.js:436 msgid "rows per page" -msgstr "" +msgstr "wierszy na stronę" #: templates/js/translated/tables.js:441 msgid "Showing all rows" -msgstr "" +msgstr "Pokaż wszystkie wiersze" #: templates/js/translated/tables.js:443 msgid "Showing" -msgstr "" +msgstr "Pokazywane" #: templates/js/translated/tables.js:443 msgid "to" -msgstr "" +msgstr "do" #: templates/js/translated/tables.js:443 msgid "of" -msgstr "" +msgstr "z" #: templates/js/translated/tables.js:443 msgid "rows" -msgstr "" +msgstr "wierszy" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "Szukaj" #: templates/js/translated/tables.js:450 msgid "No matching results" -msgstr "" +msgstr "Brak pasujących wyników" #: templates/js/translated/tables.js:453 msgid "Hide/Show pagination" -msgstr "" +msgstr "Ukryj/Pokaż stronicowanie" #: templates/js/translated/tables.js:456 msgid "Refresh" -msgstr "" +msgstr "Odśwież" #: templates/js/translated/tables.js:459 msgid "Toggle" -msgstr "" +msgstr "Przełącz" #: templates/js/translated/tables.js:462 msgid "Columns" -msgstr "" +msgstr "Kolumny" #: templates/js/translated/tables.js:465 msgid "All" -msgstr "" +msgstr "Wszystkie" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" -msgstr "" +msgstr "Kup" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" -msgstr "" +msgstr "Sprzedaj" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "Pokaż powiadomienia" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "Nowe powiadomienia" + +#: templates/navbar.html:139 msgid "Logout" -msgstr "" +msgstr "Wyloguj się" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" -msgstr "" +msgstr "Zaloguj się" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" -msgstr "" +msgstr "O InvenTree" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "Zapisz" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "Pokaż wszystkie powiadomienia i historię" #: templates/qr_code.html:11 msgid "QR data not provided" -msgstr "" +msgstr "Dane QR nie zostały dostarczone" #: templates/registration/logged_out.html:6 msgid "You were logged out successfully." -msgstr "" +msgstr "Zostałeś pomyślnie wylogowany." #: templates/registration/logged_out.html:8 msgid "Log in again" -msgstr "" +msgstr "Zaloguj się ponownie" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "Pokaż pełne wyniki wyszukiwania" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "Wyczyść wyszukiwanie" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "Filtruj wyniki" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "Zamknij menu wyszukiwania" + +#: templates/search.html:35 +msgid "No search results" +msgstr "Brak wyników" #: templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "Serwer" #: templates/stats.html:13 msgid "Instance Name" -msgstr "" +msgstr "Nazwa instancji" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Baza danych" #: templates/stats.html:26 msgid "Server is running in debug mode" -msgstr "" +msgstr "Serwer jest uruchomiony w trybie debugowania" #: templates/stats.html:33 msgid "Docker Mode" -msgstr "" +msgstr "Tryb Dockera" #: templates/stats.html:34 msgid "Server is deployed using docker" -msgstr "" +msgstr "Serwer jest wdrożony z użyciem Dockera" #: templates/stats.html:39 msgid "Plugin Support" -msgstr "" +msgstr "Obsługa wtyczek" #: templates/stats.html:43 msgid "Plugin support enabled" -msgstr "" +msgstr "Obsługa wtyczki włączona" #: templates/stats.html:45 msgid "Plugin support disabled" -msgstr "" +msgstr "Obsługa wtyczek wyłączona" #: templates/stats.html:52 msgid "Server status" -msgstr "" +msgstr "Status serwera" #: templates/stats.html:55 msgid "Healthy" -msgstr "" +msgstr "Zdrowie" #: templates/stats.html:57 msgid "Issues detected" -msgstr "" +msgstr "Wykryto problemy" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "Proces w tle" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "Proces w tle nie jest uruchomiony" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "Ustawienia e-maila" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "Ustawienia e-mail nie zostały skonfigurowane" #: templates/stock_table.html:17 msgid "Barcode Actions" -msgstr "" +msgstr "Akcje kodów kreskowych" #: templates/stock_table.html:33 msgid "Print test reports" -msgstr "" +msgstr "Drukuj raporty testowe" #: templates/stock_table.html:40 msgid "Stock Options" -msgstr "" +msgstr "Opcje magazynowe" #: templates/stock_table.html:45 msgid "Add to selected stock items" -msgstr "" +msgstr "Dodaj do wybranych produktów magazynowych" #: templates/stock_table.html:46 msgid "Remove from selected stock items" -msgstr "" +msgstr "Usuń z wybranych przedmiotów magazynowych" #: templates/stock_table.html:47 msgid "Stocktake selected stock items" @@ -9767,47 +10038,47 @@ msgstr "" #: templates/stock_table.html:48 msgid "Move selected stock items" -msgstr "" +msgstr "Przenieś wybrane przedmioty magazynowe" #: templates/stock_table.html:49 msgid "Merge selected stock items" -msgstr "" +msgstr "Połącz wybrane przedmioty magazynowe" #: templates/stock_table.html:49 msgid "Merge stock" -msgstr "" +msgstr "Scal stany magazynowe" #: templates/stock_table.html:50 msgid "Order selected items" -msgstr "" +msgstr "Zamów wybrane elementy" #: templates/stock_table.html:52 msgid "Change status" -msgstr "" +msgstr "Zmień status" #: templates/stock_table.html:52 msgid "Change stock status" -msgstr "" +msgstr "Zmień status stanu magazynowego" #: templates/stock_table.html:55 msgid "Delete selected items" -msgstr "" +msgstr "Usuń zaznaczone elementy" #: templates/stock_table.html:55 msgid "Delete stock" -msgstr "" +msgstr "Usuń stan magazynowy" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "Tak" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "Nie" #: users/admin.py:64 msgid "Users" -msgstr "" +msgstr "Użytkownicy" #: users/admin.py:65 msgid "Select which users are assigned to this group" @@ -9819,7 +10090,7 @@ msgstr "" #: users/admin.py:210 msgid "Personal info" -msgstr "" +msgstr "Informacje osobiste" #: users/admin.py:211 msgid "Permissions" @@ -9827,37 +10098,37 @@ msgstr "Uprawnienia" #: users/admin.py:214 msgid "Important dates" -msgstr "" +msgstr "Ważne daty" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" -msgstr "" +msgstr "Grupa" -#: users/models.py:211 +#: users/models.py:212 msgid "View" -msgstr "" +msgstr "Widok" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" -msgstr "" +msgstr "Zmień" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index f9181f6df8..82ebb3a5e1 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -3,78 +3,78 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" -"Language-Team: Portuguese\n" -"Language: pt_PT\n" +"Language-Team: Portuguese, Brazilian\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Crowdin-Project: inventree\n" "X-Crowdin-Project-ID: 452300\n" -"X-Crowdin-Language: pt-PT\n" +"X-Crowdin-Language: pt-BR\n" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" -msgstr "" +msgstr "API endpoint não encontrado" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" -msgstr "" +msgstr "Nenhuma ação especificada" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" -msgstr "" +msgstr "Nenhuma ação correspondente encontrada" #: InvenTree/fields.py:100 msgid "Enter date" -msgstr "" +msgstr "Insira uma Data" #: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 #: order/forms.py:57 templates/account/email_confirm.html:20 #: templates/js/translated/forms.js:601 msgid "Confirm" -msgstr "" +msgstr "Confirmar" #: InvenTree/forms.py:142 msgid "Confirm delete" -msgstr "" +msgstr "Confirmar exclusão" #: InvenTree/forms.py:143 msgid "Confirm item deletion" -msgstr "" +msgstr "Confirmar exclusão do item" #: InvenTree/forms.py:174 msgid "Enter password" -msgstr "" +msgstr "Digite a senha" #: InvenTree/forms.py:175 msgid "Enter new password" -msgstr "" +msgstr "Insira uma nova senha" #: InvenTree/forms.py:182 msgid "Confirm password" -msgstr "" +msgstr "Confirmar senha" #: InvenTree/forms.py:183 msgid "Confirm new password" -msgstr "" +msgstr "Confirmar nova senha" #: InvenTree/forms.py:215 msgid "Select Category" -msgstr "" +msgstr "Selecionar Categoria" #: InvenTree/forms.py:236 msgid "Email (again)" -msgstr "" +msgstr "E-mail (novamente)" #: InvenTree/forms.py:240 msgid "Email address confirmation" -msgstr "" +msgstr "Confirmação do endereço de email" #: InvenTree/forms.py:260 msgid "You must type the same email each time." @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "" @@ -152,11 +152,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "" @@ -193,42 +194,42 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "" @@ -240,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:666 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:667 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:668 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Spanish (Mexican)" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "French" -msgstr "" - -#: InvenTree/settings.py:671 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Hungarian" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:674 -msgid "Japanese" -msgstr "" - #: InvenTree/settings.py:675 -msgid "Korean" +msgid "Czech" msgstr "" #: InvenTree/settings.py:676 -msgid "Dutch" +msgid "German" msgstr "" #: InvenTree/settings.py:677 -msgid "Norwegian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:678 -msgid "Polish" +msgid "English" msgstr "" #: InvenTree/settings.py:679 -msgid "Portugese" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:680 -msgid "Russian" +msgid "Spanish (Mexican)" msgstr "" #: InvenTree/settings.py:681 -msgid "Swedish" +msgid "Farsi / Persian" msgstr "" #: InvenTree/settings.py:682 -msgid "Thai" +msgid "French" msgstr "" #: InvenTree/settings.py:683 -msgid "Turkish" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:684 -msgid "Vietnamese" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:685 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "" @@ -399,14 +412,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "" @@ -445,91 +458,95 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -589,7 +606,7 @@ msgstr "" msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.mo b/InvenTree/locale/pt_br/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..2c90dd0c81 Binary files /dev/null and b/InvenTree/locale/pt_br/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po new file mode 100644 index 0000000000..f4ee57bc48 --- /dev/null +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -0,0 +1,7859 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-26 01:04+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: InvenTree/api.py:57 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:103 +msgid "No action specified" +msgstr "" + +#: InvenTree/api.py:118 +msgid "No matching action found" +msgstr "" + +#: InvenTree/fields.py:100 +msgid "Enter date" +msgstr "" + +#: InvenTree/forms.py:126 order/forms.py:24 order/forms.py:35 order/forms.py:46 +#: order/forms.py:57 templates/account/email_confirm.html:20 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:142 +msgid "Confirm delete" +msgstr "" + +#: InvenTree/forms.py:143 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:174 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:175 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:182 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:215 +msgid "Select Category" +msgstr "" + +#: InvenTree/forms.py:236 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:240 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:260 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/helpers.py:442 +#, python-brace-format +msgid "Duplicate serial: {sn}" +msgstr "" + +#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 +#: stock/views.py:993 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:452 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:474 InvenTree/helpers.py:477 InvenTree/helpers.py:480 +#: InvenTree/helpers.py:504 +#, python-brace-format +msgid "Invalid group: {g}" +msgstr "" + +#: InvenTree/helpers.py:518 +#, python-brace-format +msgid "Invalid/no group {group}" +msgstr "" + +#: InvenTree/helpers.py:524 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:528 +#, python-brace-format +msgid "Number of unique serial number ({s}) must match quantity ({q})" +msgstr "" + +#: InvenTree/models.py:185 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:186 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:197 stock/models.py:2173 +msgid "Attachment" +msgstr "" + +#: InvenTree/models.py:198 +msgid "Select file to attach" +msgstr "" + +#: InvenTree/models.py:204 company/models.py:131 company/models.py:348 +#: company/models.py:564 order/models.py:127 part/models.py:873 +#: report/templates/report/inventree_build_order_base.html:165 +msgid "Link" +msgstr "" + +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:641 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:208 +msgid "Comment" +msgstr "" + +#: InvenTree/models.py:208 +msgid "File comment" +msgstr "" + +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1396 +#: common/models.py:1397 common/models.py:1618 common/models.py:1619 +#: common/models.py:1848 common/models.py:1849 part/models.py:2374 +#: part/models.py:2394 +#: report/templates/report/inventree_test_report_base.html:96 +msgid "User" +msgstr "" + +#: InvenTree/models.py:218 +msgid "upload date" +msgstr "" + +#: InvenTree/models.py:241 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:264 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:274 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:277 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:284 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:291 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:326 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1604 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:177 +#: templates/InvenTree/notifications/notifications.html:84 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 +#: templates/InvenTree/settings/plugin_settings.html:23 +#: templates/InvenTree/settings/settings.html:320 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:349 build/models.py:209 +#: build/templates/build/detail.html:24 company/models.py:354 +#: company/models.py:570 company/templates/company/company_base.html:68 +#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/supplier_part.html:73 label/models.py:119 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 +#: part/templates/part/set_category.html:14 report/models.py:190 +#: report/models.py:553 report/models.py:592 +#: report/templates/report/inventree_build_order_base.html:118 +#: stock/templates/stock/location.html:94 +#: templates/InvenTree/settings/plugin_settings.html:33 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:350 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:358 +msgid "parent" +msgstr "" + +#: InvenTree/serializers.py:65 part/models.py:2877 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:299 +msgid "Filename" +msgstr "" + +#: InvenTree/serializers.py:334 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:355 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:356 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:380 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:386 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:407 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:410 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:533 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:536 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:623 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:632 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/settings.py:674 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:675 +msgid "German" +msgstr "" + +#: InvenTree/settings.py:676 +msgid "Greek" +msgstr "" + +#: InvenTree/settings.py:677 +msgid "English" +msgstr "" + +#: InvenTree/settings.py:678 +msgid "Spanish" +msgstr "" + +#: InvenTree/settings.py:679 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:680 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:681 +msgid "French" +msgstr "" + +#: InvenTree/settings.py:682 +msgid "Hebrew" +msgstr "" + +#: InvenTree/settings.py:683 +msgid "Hungarian" +msgstr "" + +#: InvenTree/settings.py:684 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:685 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portugese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Chinese" +msgstr "" + +#: InvenTree/status.py:110 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:114 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:117 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 +#: InvenTree/status_codes.py:323 +msgid "Pending" +msgstr "" + +#: InvenTree/status_codes.py:102 +msgid "Placed" +msgstr "" + +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 +#: order/templates/order/order_base.html:128 +#: order/templates/order/sales_order_base.html:132 +msgid "Complete" +msgstr "" + +#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 +#: InvenTree/status_codes.py:325 +msgid "Cancelled" +msgstr "" + +#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145 +#: InvenTree/status_codes.py:187 +msgid "Lost" +msgstr "" + +#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146 +#: InvenTree/status_codes.py:189 +msgid "Returned" +msgstr "" + +#: InvenTree/status_codes.py:143 order/models.py:997 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:183 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:184 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:185 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:186 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:188 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:276 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:278 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:280 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:281 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:283 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:284 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:285 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:287 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:289 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:290 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:292 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:293 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:295 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:296 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:298 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:303 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:305 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:306 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Received against purchase order" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Production" +msgstr "" + +#: InvenTree/validators.py:25 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:53 +msgid "Invalid character in part name" +msgstr "" + +#: InvenTree/validators.py:66 +#, python-brace-format +msgid "IPN must match regex pattern {pat}" +msgstr "" + +#: InvenTree/validators.py:80 InvenTree/validators.py:94 +#: InvenTree/validators.py:108 +#, python-brace-format +msgid "Reference must match pattern {pattern}" +msgstr "" + +#: InvenTree/validators.py:116 +#, python-brace-format +msgid "Illegal character in name ({x})" +msgstr "" + +#: InvenTree/validators.py:137 InvenTree/validators.py:153 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:155 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:162 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:538 +msgid "Delete Item" +msgstr "" + +#: InvenTree/views.py:587 +msgid "Check box to confirm item deletion" +msgstr "" + +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:632 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:883 templates/navbar.html:144 +msgid "System Information" +msgstr "" + +#: barcodes/api.py:55 barcodes/api.py:156 +msgid "Must provide barcode_data parameter" +msgstr "" + +#: barcodes/api.py:132 +msgid "No match found for barcode data" +msgstr "" + +#: barcodes/api.py:134 +msgid "Match found for barcode data" +msgstr "" + +#: barcodes/api.py:159 +msgid "Must provide stockitem parameter" +msgstr "" + +#: barcodes/api.py:166 +msgid "No matching stock item found" +msgstr "" + +#: barcodes/api.py:197 +msgid "Barcode already matches Stock Item" +msgstr "" + +#: barcodes/api.py:201 +msgid "Barcode already matches Stock Location" +msgstr "" + +#: barcodes/api.py:205 +msgid "Barcode already matches Part" +msgstr "" + +#: barcodes/api.py:211 barcodes/api.py:223 +msgid "Barcode hash already matches Stock Item" +msgstr "" + +#: barcodes/api.py:229 +msgid "Barcode associated with Stock Item" +msgstr "" + +#: build/forms.py:20 +msgid "Confirm cancel" +msgstr "" + +#: build/forms.py:20 build/views.py:62 +msgid "Confirm build cancellation" +msgstr "" + +#: build/models.py:135 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:139 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_base.html:106 +msgid "Build Order" +msgstr "" + +#: build/models.py:140 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:91 +#: order/templates/order/so_sidebar.html:13 +#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: templates/InvenTree/search.html:139 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 +msgid "Build Orders" +msgstr "" + +#: build/models.py:200 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:201 order/models.py:213 order/models.py:563 +#: order/models.py:843 part/models.py:2788 +#: part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:92 +msgid "Reference" +msgstr "" + +#: build/models.py:212 +msgid "Brief description of the build" +msgstr "" + +#: build/models.py:221 build/templates/build/build_base.html:169 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/models.py:222 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:227 build/templates/build/build_base.html:77 +#: build/templates/build/detail.html:29 company/models.py:706 +#: order/models.py:912 order/models.py:986 +#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2763 part/models.py:3053 +#: part/serializers.py:834 part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/set_category.html:13 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:89 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:80 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:16 +msgid "Part" +msgstr "" + +#: build/models.py:235 +msgid "Select part to build" +msgstr "" + +#: build/models.py:240 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:244 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:249 build/serializers.py:730 +msgid "Source Location" +msgstr "" + +#: build/models.py:253 +msgid "" +"Select location to take stock from for this build (leave blank to take from " +"any stock location)" +msgstr "" + +#: build/models.py:258 +msgid "Destination Location" +msgstr "" + +#: build/models.py:262 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:266 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:269 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:273 +msgid "Completed items" +msgstr "" + +#: build/models.py:275 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:279 +msgid "Build Status" +msgstr "" + +#: build/models.py:283 +msgid "Build status code" +msgstr "" + +#: build/models.py:287 build/serializers.py:218 order/serializers.py:272 +#: stock/models.py:645 +msgid "Batch Code" +msgstr "" + +#: build/models.py:291 build/serializers.py:219 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:331 +msgid "Creation Date" +msgstr "" + +#: build/models.py:298 order/models.py:585 +msgid "Target completion date" +msgstr "" + +#: build/models.py:299 +msgid "" +"Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:302 order/models.py:255 +msgid "Completion Date" +msgstr "" + +#: build/models.py:308 +msgid "completed by" +msgstr "" + +#: build/models.py:316 +msgid "Issued by" +msgstr "" + +#: build/models.py:317 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:325 build/templates/build/build_base.html:190 +#: build/templates/build/detail.html:115 order/models.py:143 +#: order/templates/order/order_base.html:170 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 +#: report/templates/report/inventree_build_order_base.html:159 +msgid "Responsible" +msgstr "" + +#: build/models.py:326 +msgid "User responsible for this build order" +msgstr "" + +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:102 +#: company/templates/company/supplier_part.html:126 +#: part/templates/part/part_base.html:372 stock/models.py:639 +#: stock/templates/stock/item_base.html:357 +msgid "External Link" +msgstr "" + +#: build/models.py:336 build/serializers.py:381 +#: build/templates/build/sidebar.html:21 company/models.py:142 +#: company/models.py:577 company/templates/company/sidebar.html:25 +#: order/models.py:147 order/models.py:845 order/models.py:1107 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:60 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:711 +#: stock/models.py:2073 stock/models.py:2179 stock/serializers.py:332 +#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 +#: stock/templates/stock/stock_sidebar.html:25 +msgid "Notes" +msgstr "" + +#: build/models.py:337 +msgid "Extra build notes" +msgstr "" + +#: build/models.py:750 +msgid "No build output specified" +msgstr "" + +#: build/models.py:753 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:756 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1168 +msgid "" +"Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1177 +#, python-brace-format +msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1187 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1193 order/models.py:1225 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1199 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1256 +msgid "Selected stock item not found in BOM" +msgstr "" + +#: build/models.py:1325 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/navbar.html:35 +msgid "Build" +msgstr "" + +#: build/models.py:1326 +msgid "Build to allocate parts" +msgstr "" + +#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 +#: stock/serializers.py:753 stock/templates/stock/item_base.html:9 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:351 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1343 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1355 build/serializers.py:188 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:34 common/models.py:1429 +#: company/forms.py:42 company/templates/company/supplier_part.html:251 +#: order/models.py:836 order/models.py:1265 order/serializers.py:903 +#: order/templates/order/order_wizard/match_parts.html:30 +#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 +#: part/forms.py:160 part/forms.py:176 part/models.py:2779 +#: part/templates/part/detail.html:965 part/templates/part/detail.html:1051 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:91 +#: report/templates/report/inventree_test_report_base.html:81 +#: report/templates/report/inventree_test_report_base.html:139 +#: stock/forms.py:139 stock/serializers.py:293 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +msgid "Quantity" +msgstr "" + +#: build/models.py:1356 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1364 +msgid "Install into" +msgstr "" + +#: build/models.py:1365 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:138 build/serializers.py:605 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:150 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:154 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:158 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:164 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:189 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:201 build/serializers.py:596 order/models.py:280 +#: order/serializers.py:267 part/serializers.py:556 part/serializers.py:1001 +#: stock/models.py:479 stock/models.py:1282 stock/serializers.py:305 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/serializers.py:208 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:211 +msgid "" +"Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 +#: stock/forms.py:78 stock/serializers.py:314 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:226 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:240 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:241 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:275 stock/api.py:591 +msgid "The following serial numbers already exist" +msgstr "" + +#: build/serializers.py:328 build/serializers.py:393 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 +#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +msgid "Location" +msgstr "" + +#: build/serializers.py:371 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:377 build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +msgid "Status" +msgstr "" + +#: build/serializers.py:434 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:435 +msgid "" +"Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:445 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:450 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:451 +msgid "" +"Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:461 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:470 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:473 build/templates/build/build_base.html:95 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2903 +#: part/models.py:3045 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:511 +msgid "Build output" +msgstr "" + +#: build/serializers.py:520 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:567 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:582 stock/serializers.py:642 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:638 order/serializers.py:834 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:644 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:651 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:679 order/serializers.py:1077 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:731 +msgid "" +"Stock location where parts are to be sourced (leave blank to take from any " +"location)" +msgstr "" + +#: build/serializers.py:739 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:740 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:745 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:746 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:751 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:752 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/tasks.py:98 +msgid "Stock required for build order" +msgstr "" + +#: build/templates/build/build_base.html:39 +#: order/templates/order/order_base.html:28 +#: order/templates/order/sales_order_base.html:38 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:50 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:54 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:220 build/views.py:53 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:59 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:64 +#: build/templates/build/build_base.html:65 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:101 +#, python-format +msgid "This Build Order is allocated to Sales Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:108 +#, python-format +msgid "This Build Order is a child of Build Order %(link)s" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:120 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:130 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:151 +#: build/templates/build/detail.html:131 order/models.py:849 +#: order/templates/order/order_base.html:156 +#: order/templates/order/sales_order_base.html:163 +#: report/templates/report/inventree_build_order_base.html:126 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:156 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:156 +#: build/templates/build/build_base.html:201 +#: order/templates/order/order_base.html:98 +#: order/templates/order/sales_order_base.html:93 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:163 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 +#: order/templates/order/sales_order_base.html:170 +msgid "Completed" +msgstr "" + +#: build/templates/build/build_base.html:176 +#: build/templates/build/detail.html:94 order/models.py:983 +#: order/models.py:1079 order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:291 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:183 +#: build/templates/build/detail.html:108 +#: report/templates/report/inventree_build_order_base.html:153 +msgid "Issued By" +msgstr "" + +#: build/templates/build/build_base.html:228 +#: build/templates/build/sidebar.html:12 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/build_base.html:229 +msgid "Build Order cannot be completed as incomplete build outputs remain" +msgstr "" + +#: build/templates/build/cancel.html:5 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:126 +#: order/templates/order/order_base.html:143 +#: order/templates/order/sales_order_base.html:157 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:137 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:146 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:172 +msgid "Allocate Stock to Build" +msgstr "" + +#: build/templates/build/detail.html:176 +msgid "Unallocate stock" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Unallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:179 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:180 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:186 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 +#: part/templates/part/category.html:174 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:199 +msgid "Untracked stock has been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:203 +msgid "Untracked stock has not been fully allocated for this Build Order" +msgstr "" + +#: build/templates/build/detail.html:210 +msgid "Allocate selected items" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "" + +#: build/templates/build/detail.html:229 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:233 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:234 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:248 +msgid "Output Actions" +msgstr "" + +#: build/templates/build/detail.html:252 +msgid "Complete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:253 +msgid "Complete outputs" +msgstr "" + +#: build/templates/build/detail.html:255 +msgid "Delete selected build outputs" +msgstr "" + +#: build/templates/build/detail.html:256 +msgid "Delete outputs" +msgstr "" + +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:206 +#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:312 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:548 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:549 +msgid "All untracked stock items have been allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:312 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/index.html:37 build/templates/build/index.html:38 +msgid "Print Build Orders" +msgstr "" + +#: build/templates/build/index.html:44 +#: order/templates/order/purchase_orders.html:34 +#: order/templates/order/sales_orders.html:37 +msgid "Display calendar view" +msgstr "" + +#: build/templates/build/index.html:47 +#: order/templates/order/purchase_orders.html:37 +#: order/templates/order/sales_orders.html:40 +msgid "Display list view" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:15 +msgid "Completed Outputs" +msgstr "" + +#: build/views.py:73 +msgid "Build was cancelled" +msgstr "" + +#: build/views.py:114 +msgid "Delete Build Order" +msgstr "" + +#: common/files.py:65 +msgid "Unsupported file format: {ext.upper()}" +msgstr "" + +#: common/files.py:67 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:76 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:34 +msgid "File" +msgstr "" + +#: common/forms.py:35 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:50 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:51 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:381 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:383 +msgid "Settings value" +msgstr "" + +#: common/models.py:417 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:437 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:448 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:490 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:637 +msgid "No group" +msgstr "" + +#: common/models.py:679 +msgid "Restart required" +msgstr "" + +#: common/models.py:680 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:687 +msgid "InvenTree Instance Name" +msgstr "" + +#: common/models.py:689 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:693 +msgid "Use instance name" +msgstr "" + +#: common/models.py:694 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:700 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "" + +#: common/models.py:701 +msgid "Internal company name" +msgstr "" + +#: common/models.py:706 +msgid "Base URL" +msgstr "" + +#: common/models.py:707 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:713 +msgid "Default Currency" +msgstr "" + +#: common/models.py:714 +msgid "Default currency" +msgstr "" + +#: common/models.py:720 +msgid "Download from URL" +msgstr "" + +#: common/models.py:721 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:727 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:728 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:734 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:735 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:739 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:740 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:753 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:754 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:760 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:761 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:767 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:768 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:774 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:775 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:781 part/models.py:2598 report/models.py:183 +msgid "Template" +msgstr "" + +#: common/models.py:782 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:788 part/models.py:964 +msgid "Assembly" +msgstr "" + +#: common/models.py:789 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:795 part/models.py:970 +msgid "Component" +msgstr "" + +#: common/models.py:796 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:802 part/models.py:981 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:803 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:809 part/models.py:986 +msgid "Salable" +msgstr "" + +#: common/models.py:810 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:816 part/models.py:976 +msgid "Trackable" +msgstr "" + +#: common/models.py:817 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:823 part/models.py:996 +#: part/templates/part/part_base.html:151 +msgid "Virtual" +msgstr "" + +#: common/models.py:824 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:830 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:831 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:837 +msgid "Show Price in Forms" +msgstr "" + +#: common/models.py:838 +msgid "Display part price in some forms" +msgstr "" + +#: common/models.py:849 +msgid "Show Price in BOM" +msgstr "" + +#: common/models.py:850 +msgid "Include pricing information in BOM tables" +msgstr "" + +#: common/models.py:861 +msgid "Show Price History" +msgstr "" + +#: common/models.py:862 +msgid "Display historical pricing for Part" +msgstr "" + +#: common/models.py:868 +msgid "Show related parts" +msgstr "" + +#: common/models.py:869 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:875 +msgid "Create initial stock" +msgstr "" + +#: common/models.py:876 +msgid "Create initial stock on part creation" +msgstr "" + +#: common/models.py:882 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:883 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:889 +msgid "Internal Price as BOM-Price" +msgstr "" + +#: common/models.py:890 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "" + +#: common/models.py:896 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:897 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:904 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:905 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:911 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:912 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:918 +msgid "Page Size" +msgstr "" + +#: common/models.py:919 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:929 +msgid "Test Reports" +msgstr "" + +#: common/models.py:930 +msgid "Enable generation of test reports" +msgstr "" + +#: common/models.py:936 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:937 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:943 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:944 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:950 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:951 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:953 +msgid "days" +msgstr "" + +#: common/models.py:958 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:959 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:965 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:966 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:972 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:973 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:978 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:979 +msgid "Regular expression pattern for matching build order reference" +msgstr "" + +#: common/models.py:983 +msgid "Sales Order Reference Prefix" +msgstr "" + +#: common/models.py:984 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:989 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:990 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:996 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:997 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1002 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1003 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1008 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1009 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1014 +msgid "Email required" +msgstr "" + +#: common/models.py:1015 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1020 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1021 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1026 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1027 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1032 +msgid "Password twice" +msgstr "" + +#: common/models.py:1033 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1038 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1039 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1044 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1045 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1051 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1052 +msgid "" +"Check that all plugins are installed on startup - enable in container " +"enviroments" +msgstr "" + +#: common/models.py:1059 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1060 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1066 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1067 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1073 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1074 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1080 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:1081 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:1087 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:1088 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:1103 common/models.py:1389 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:1134 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:1135 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:1140 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:1141 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:1146 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:1147 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:1152 +msgid "Recent Part Count" +msgstr "" + +#: common/models.py:1153 +msgid "Number of recent parts to display on index page" +msgstr "" + +#: common/models.py:1159 +msgid "Show unvalidated BOMs" +msgstr "" + +#: common/models.py:1160 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:1165 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:1166 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:1171 +msgid "Recent Stock Count" +msgstr "" + +#: common/models.py:1172 +msgid "Number of recent stock items to display on index page" +msgstr "" + +#: common/models.py:1177 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1178 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:1183 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1184 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:1189 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1190 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:1195 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1196 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:1201 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1202 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:1207 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:1208 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:1213 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:1214 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:1219 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:1220 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:1225 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:1226 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:1231 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:1232 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:1237 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:1238 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:1244 +msgid "Enable email notifications" +msgstr "" + +#: common/models.py:1245 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: common/models.py:1251 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1252 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1258 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1259 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1265 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1266 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1272 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1273 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1279 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1280 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1286 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1287 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1293 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1294 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1300 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1301 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1307 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1308 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1314 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1315 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1321 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1322 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1328 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1329 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1335 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1336 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1342 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1343 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1349 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1350 +msgid "InvenTree navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1356 +msgid "Date Format" +msgstr "" + +#: common/models.py:1357 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1371 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1372 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:1430 company/forms.py:43 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:1437 company/serializers.py:264 +#: company/templates/company/supplier_part.html:256 +msgid "Price" +msgstr "" + +#: common/models.py:1438 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:1595 common/models.py:1734 +msgid "Endpoint" +msgstr "" + +#: common/models.py:1596 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:1605 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:1610 part/models.py:991 plugin/models.py:46 +msgid "Active" +msgstr "" + +#: common/models.py:1611 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:1625 +msgid "Token" +msgstr "" + +#: common/models.py:1626 +msgid "Token for access" +msgstr "" + +#: common/models.py:1633 +msgid "Secret" +msgstr "" + +#: common/models.py:1634 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:1701 +msgid "Message ID" +msgstr "" + +#: common/models.py:1702 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:1710 +msgid "Host" +msgstr "" + +#: common/models.py:1711 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:1718 +msgid "Header" +msgstr "" + +#: common/models.py:1719 +msgid "Header of this message" +msgstr "" + +#: common/models.py:1725 +msgid "Body" +msgstr "" + +#: common/models.py:1726 +msgid "Body of this message" +msgstr "" + +#: common/models.py:1735 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:1740 +msgid "Worked on" +msgstr "" + +#: common/models.py:1741 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/views.py:93 order/templates/order/purchase_order_detail.html:23 +#: order/views.py:243 part/views.py:208 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:94 order/views.py:244 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/views.py:209 templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:95 +msgid "Match Items" +msgstr "" + +#: common/views.py:440 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:495 +msgid "Parts imported" +msgstr "" + +#: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 +#: part/templates/part/import_wizard/match_references.html:19 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/forms.py:24 part/forms.py:46 +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: company/forms.py:25 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/models.py:105 +msgid "Company description" +msgstr "" + +#: company/models.py:106 +msgid "Description of the company" +msgstr "" + +#: company/models.py:112 company/templates/company/company_base.html:97 +#: templates/InvenTree/settings/plugin_settings.html:55 +msgid "Website" +msgstr "" + +#: company/models.py:113 +msgid "Company website URL" +msgstr "" + +#: company/models.py:117 company/templates/company/company_base.html:115 +msgid "Address" +msgstr "" + +#: company/models.py:118 +msgid "Company address" +msgstr "" + +#: company/models.py:121 +msgid "Phone number" +msgstr "" + +#: company/models.py:122 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:125 company/templates/company/company_base.html:129 +#: templates/InvenTree/settings/user.html:48 +msgid "Email" +msgstr "" + +#: company/models.py:125 +msgid "Contact email address" +msgstr "" + +#: company/models.py:128 company/templates/company/company_base.html:136 +msgid "Contact" +msgstr "" + +#: company/models.py:129 +msgid "Point of contact" +msgstr "" + +#: company/models.py:131 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:139 part/models.py:883 +msgid "Image" +msgstr "" + +#: company/models.py:144 +msgid "is customer" +msgstr "" + +#: company/models.py:144 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:146 +msgid "is supplier" +msgstr "" + +#: company/models.py:146 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:148 +msgid "is manufacturer" +msgstr "" + +#: company/models.py:148 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:152 company/serializers.py:270 +#: company/templates/company/company_base.html:103 stock/serializers.py:179 +msgid "Currency" +msgstr "" + +#: company/models.py:155 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:320 company/models.py:535 stock/models.py:583 +#: stock/templates/stock/item_base.html:142 +msgid "Base Part" +msgstr "" + +#: company/models.py:324 company/models.py:539 +msgid "Select part" +msgstr "" + +#: company/models.py:335 company/templates/company/company_base.html:73 +#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/supplier_part.html:97 +#: stock/templates/stock/item_base.html:364 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:336 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/templates/company/supplier_part.html:105 +msgid "MPN" +msgstr "" + +#: company/models.py:343 +msgid "Manufacturer Part Number" +msgstr "" + +#: company/models.py:349 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:355 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:409 company/models.py:558 +#: company/templates/company/manufacturer_part.html:6 +#: company/templates/company/manufacturer_part.html:23 +#: stock/templates/stock/item_base.html:374 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:416 +msgid "Parameter name" +msgstr "" + +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:2166 +msgid "Value" +msgstr "" + +#: company/models.py:423 +msgid "Parameter value" +msgstr "" + +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:306 +#: templates/InvenTree/settings/settings.html:325 +msgid "Units" +msgstr "" + +#: company/models.py:430 +msgid "Parameter units" +msgstr "" + +#: company/models.py:502 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:545 company/templates/company/company_base.html:78 +#: company/templates/company/supplier_part.html:87 order/models.py:227 +#: order/templates/order/order_base.html:112 +#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 +msgid "Supplier" +msgstr "" + +#: company/models.py:546 +msgid "Select supplier" +msgstr "" + +#: company/models.py:551 company/templates/company/supplier_part.html:91 +#: part/bom.py:238 part/bom.py:266 +msgid "SKU" +msgstr "" + +#: company/models.py:552 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:559 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:565 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:571 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:576 company/templates/company/supplier_part.html:119 +#: part/models.py:2791 part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 +msgid "Note" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "base cost" +msgstr "" + +#: company/models.py:580 part/models.py:1876 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:582 company/templates/company/supplier_part.html:112 +#: stock/models.py:607 stock/templates/stock/item_base.html:322 +msgid "Packaging" +msgstr "" + +#: company/models.py:582 +msgid "Part packaging" +msgstr "" + +#: company/models.py:584 part/models.py:1878 +msgid "multiple" +msgstr "" + +#: company/models.py:584 +msgid "Order multiple" +msgstr "" + +#: company/models.py:708 +msgid "last updated" +msgstr "" + +#: company/serializers.py:70 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:71 +msgid "Currency Code" +msgstr "" + +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 +#: templates/InvenTree/search.html:176 +msgid "Company" +msgstr "" + +#: company/templates/company/company_base.html:22 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:26 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:31 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:32 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:36 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:37 +#: company/templates/company/company_base.html:159 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:56 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:83 order/models.py:574 +#: order/templates/order/sales_order_base.html:115 stock/models.py:626 +#: stock/models.py:627 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:108 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:122 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:205 +#: part/templates/part/part_base.html:491 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/detail.html:14 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:118 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:18 +#: order/templates/order/order_wizard/select_parts.html:44 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:118 +#: part/templates/part/detail.html:353 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:127 +#: company/templates/company/manufacturer_part.html:156 +#: part/templates/part/category.html:168 part/templates/part/detail.html:362 +#: part/templates/part/detail.html:391 +msgid "Options" +msgstr "" + +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 +#: part/templates/part/category.html:174 +msgid "Order parts" +msgstr "" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "" + +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 +msgid "Delete Parts" +msgstr "" + +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:66 part/templates/part/detail.html:381 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:106 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:116 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:38 +#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 +#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:47 +#: users/models.py:45 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:120 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:121 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:20 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:42 +#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 +#: templates/InvenTree/settings/sidebar.html:49 templates/navbar.html:58 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:167 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:184 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:215 +#: part/templates/part/detail.html:452 +msgid "Delete Supplier Parts?" +msgstr "" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:453 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: company/templates/company/index.html:8 +msgid "Supplier List" +msgstr "" + +#: company/templates/company/manufacturer_part.html:14 company/views.py:55 +#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 +#: templates/navbar.html:46 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:34 +#: company/templates/company/supplier_part.html:159 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:40 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:44 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/supplier_part.html:63 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/supplier_part.html:15 company/views.py:49 +#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 +#: templates/InvenTree/search.html:188 templates/navbar.html:45 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: part/templates/part/detail.html:364 +msgid "Delete supplier parts" +msgstr "" + +#: company/templates/company/manufacturer_part.html:129 +#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:254 +#: part/templates/part/detail.html:364 part/templates/part/detail.html:393 +#: users/models.py:218 +msgid "Delete" +msgstr "" + +#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:180 part/templates/part/part_sidebar.html:9 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:147 +#: part/templates/part/detail.html:185 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part.html:66 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:158 +msgid "Delete parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:191 +#: part/templates/part/detail.html:865 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:239 +msgid "Selected parameters will be deleted" +msgstr "" + +#: company/templates/company/manufacturer_part.html:251 +msgid "Delete Parameters" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 stock/models.py:591 +#: stock/templates/stock/item_base.html:386 +msgid "Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:38 +msgid "Edit supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:42 +msgid "Delete supplier part" +msgstr "" + +#: company/templates/company/supplier_part.html:138 +#: company/templates/company/supplier_part_navbar.html:12 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:141 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:142 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:155 +#: company/templates/company/supplier_part_navbar.html:19 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:160 +#: part/templates/part/detail.html:81 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:179 +#: part/templates/part/prices.html:7 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:184 +#: company/templates/company/supplier_part.html:298 +#: part/templates/part/prices.html:271 part/views.py:1238 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +msgid "No price break information found" +msgstr "" + +#: company/templates/company/supplier_part.html:224 part/views.py:1300 +msgid "Delete Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:238 part/views.py:1286 +msgid "Edit Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:263 +msgid "Edit price break" +msgstr "" + +#: company/templates/company/supplier_part.html:264 +msgid "Delete price break" +msgstr "" + +#: company/templates/company/supplier_part.html:273 +msgid "Last updated" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:15 +#: part/templates/part/part_sidebar.html:15 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:150 +#: templates/InvenTree/settings/sidebar.html:43 templates/navbar.html:28 +msgid "Stock" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:22 +msgid "Orders" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:26 +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/templates/company/supplier_part_navbar.html:29 +#: part/templates/part/part_sidebar.html:32 +msgid "Pricing" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:152 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 +msgid "Stock Items" +msgstr "" + +#: company/views.py:50 +msgid "New Supplier" +msgstr "" + +#: company/views.py:56 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:61 templates/InvenTree/search.html:208 +#: templates/navbar.html:57 +msgid "Customers" +msgstr "" + +#: company/views.py:62 +msgid "New Customer" +msgstr "" + +#: company/views.py:69 +msgid "Companies" +msgstr "" + +#: company/views.py:70 +msgid "New Company" +msgstr "" + +#: company/views.py:129 part/views.py:589 +msgid "Download Image" +msgstr "" + +#: company/views.py:158 part/views.py:621 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:165 part/views.py:628 +#, python-brace-format +msgid "Invalid response: {code}" +msgstr "" + +#: company/views.py:174 part/views.py:637 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: label/api.py:97 report/api.py:203 +msgid "No valid objects provided to template" +msgstr "" + +#: label/models.py:113 +msgid "Label name" +msgstr "" + +#: label/models.py:120 +msgid "Label description" +msgstr "" + +#: label/models.py:127 +msgid "Label" +msgstr "" + +#: label/models.py:128 +msgid "Label template file" +msgstr "" + +#: label/models.py:134 report/models.py:294 +msgid "Enabled" +msgstr "" + +#: label/models.py:135 +msgid "Label template is enabled" +msgstr "" + +#: label/models.py:140 +msgid "Width [mm]" +msgstr "" + +#: label/models.py:141 +msgid "Label width, specified in mm" +msgstr "" + +#: label/models.py:147 +msgid "Height [mm]" +msgstr "" + +#: label/models.py:148 +msgid "Label height, specified in mm" +msgstr "" + +#: label/models.py:154 report/models.py:287 +msgid "Filename Pattern" +msgstr "" + +#: label/models.py:155 +msgid "Pattern for generating label filenames" +msgstr "" + +#: label/models.py:258 +msgid "Query filters (comma-separated list of key=value pairs)," +msgstr "" + +#: label/models.py:259 label/models.py:319 label/models.py:366 +#: report/models.py:318 report/models.py:455 report/models.py:493 +msgid "Filters" +msgstr "" + +#: label/models.py:318 +msgid "Query filters (comma-separated list of key=value pairs" +msgstr "" + +#: label/models.py:365 +msgid "Part query filters (comma-separated value of key=value pairs)" +msgstr "" + +#: order/forms.py:24 order/templates/order/order_base.html:52 +msgid "Place order" +msgstr "" + +#: order/forms.py:35 order/templates/order/order_base.html:60 +msgid "Mark order as complete" +msgstr "" + +#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 +#: order/templates/order/sales_order_base.html:60 +msgid "Cancel order" +msgstr "" + +#: order/models.py:125 +msgid "Order description" +msgstr "" + +#: order/models.py:127 +msgid "Link to external page" +msgstr "" + +#: order/models.py:135 +msgid "Created By" +msgstr "" + +#: order/models.py:142 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:147 +msgid "Order notes" +msgstr "" + +#: order/models.py:214 order/models.py:564 +msgid "Order reference" +msgstr "" + +#: order/models.py:219 order/models.py:579 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:228 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:231 order/templates/order/order_base.html:118 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:231 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:238 +msgid "received by" +msgstr "" + +#: order/models.py:243 +msgid "Issue Date" +msgstr "" + +#: order/models.py:244 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:249 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:250 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:256 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:285 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:430 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:575 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:581 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:581 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:586 +msgid "" +"Target date for order completion. Order will be overdue after this date." +msgstr "" + +#: order/models.py:589 order/models.py:1084 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:596 +msgid "shipped by" +msgstr "" + +#: order/models.py:662 +msgid "Order cannot be completed as no parts have been assigned" +msgstr "" + +#: order/models.py:666 +msgid "Only a pending order can be marked as complete" +msgstr "" + +#: order/models.py:669 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:672 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:837 +msgid "Item quantity" +msgstr "" + +#: order/models.py:843 +msgid "Line item reference" +msgstr "" + +#: order/models.py:845 +msgid "Line item notes" +msgstr "" + +#: order/models.py:850 +msgid "Target shipping date for this line item" +msgstr "" + +#: order/models.py:878 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:891 order/models.py:982 order/models.py:1078 +msgid "Order" +msgstr "" + +#: order/models.py:892 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_po_report.html:76 +#: stock/templates/stock/item_base.html:336 +msgid "Purchase Order" +msgstr "" + +#: order/models.py:913 +msgid "Supplier part" +msgstr "" + +#: order/models.py:920 order/templates/order/order_base.html:163 +msgid "Received" +msgstr "" + +#: order/models.py:921 +msgid "Number of items received" +msgstr "" + +#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:720 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:929 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:937 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:992 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +msgid "Sale Price" +msgstr "" + +#: order/models.py:993 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:998 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1085 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1092 +msgid "Checked By" +msgstr "" + +#: order/models.py:1093 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1101 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1108 +msgid "Shipment notes" +msgstr "" + +#: order/models.py:1115 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1116 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1126 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1129 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1207 order/models.py:1209 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1213 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1215 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1218 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1222 +msgid "StockItem is over-allocated" +msgstr "" + +#: order/models.py:1228 order/serializers.py:827 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1231 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1232 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:1240 +msgid "Line" +msgstr "" + +#: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 +msgid "Shipment" +msgstr "" + +#: order/models.py:1249 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 +msgid "Item" +msgstr "" + +#: order/models.py:1262 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:1265 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/serializers.py:187 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:238 order/serializers.py:883 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:244 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:254 order/serializers.py:359 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:273 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:281 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:294 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:295 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:312 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:331 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:371 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:388 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:399 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:672 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:742 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:792 order/serializers.py:895 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:814 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:908 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:932 order/serializers.py:1057 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:935 order/serializers.py:1060 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:987 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:997 +msgid "The following serial numbers are already allocated" +msgstr "" + +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 +msgid "Are you sure you want to delete this attachment?" +msgstr "" + +#: order/templates/order/order_base.html:33 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:35 +#: order/templates/order/sales_order_base.html:45 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:41 +#: order/templates/order/sales_order_base.html:54 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:45 +#: order/templates/order/sales_order_base.html:58 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:56 +msgid "Receive items" +msgstr "" + +#: order/templates/order/order_base.html:58 +#: order/templates/order/purchase_order_detail.html:30 +msgid "Receive Items" +msgstr "" + +#: order/templates/order/order_base.html:62 +#: order/templates/order/sales_order_base.html:67 order/views.py:181 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/sales_order_base.html:79 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/sales_order_base.html:84 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:94 +#: order/templates/order/sales_order_base.html:89 +msgid "Order Status" +msgstr "" + +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:128 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:130 +#: order/templates/order/sales_order_base.html:134 +#: order/templates/order/sales_order_base.html:144 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:149 +#: report/templates/report/inventree_build_order_base.html:122 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:219 +msgid "Edit Purchase Order" +msgstr "" + +#: order/templates/order/order_cancel.html:8 +msgid "" +"Cancelling this order means that the order and line items will no longer be " +"editable." +msgstr "" + +#: order/templates/order/order_complete.html:7 +msgid "Mark this order as complete?" +msgstr "" + +#: order/templates/order/order_complete.html:10 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: order/templates/order/order_complete.html:11 +msgid "" +"Completing this order means that the order and line items will no longer be " +"editable." +msgstr "" + +#: order/templates/order/order_issue.html:8 +msgid "" +"After placing this purchase order, line items will no longer be editable." +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:14 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:11 +msgid "Step 1 of 2 - Select Part Suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:16 +msgid "Select suppliers" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:20 +msgid "No purchaseable parts selected" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:33 +msgid "Select Supplier" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:57 +msgid "No price" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:65 +#, python-format +msgid "Select a supplier for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_parts.html:77 +#: part/templates/part/set_category.html:32 +msgid "Remove part" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:8 +msgid "Step 2 of 2 - Select Purchase Orders" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:12 +msgid "Select existing purchase orders, or create new orders." +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:31 +msgid "Items" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:32 +msgid "Select Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:45 +#, python-format +msgid "Create new purchase order for %(name)s" +msgstr "" + +#: order/templates/order/order_wizard/select_pos.html:68 +#, python-format +msgid "Select a purchase order for %(name)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_po_report.html:84 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:17 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:29 +msgid "Receive selected items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:49 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:33 +msgid "Print Order Reports" +msgstr "" + +#: order/templates/order/sales_order_base.html:43 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:47 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/sales_order_base.html:66 +#: order/templates/order/sales_order_base.html:229 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:102 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:122 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/sales_order_base.html:140 +#: order/templates/order/sales_order_detail.html:77 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:215 +msgid "Edit Sales Order" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:8 +#: stock/templates/stock/stockitem_convert.html:13 +msgid "Warning" +msgstr "" + +#: order/templates/order/sales_order_cancel.html:9 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: order/templates/order/sales_order_detail.html:17 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:43 +#: order/templates/order/so_sidebar.html:8 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:47 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:56 +msgid "New Shipment" +msgstr "" + +#: order/views.py:99 +msgid "Cancel Order" +msgstr "" + +#: order/views.py:108 order/views.py:134 +msgid "Confirm order cancellation" +msgstr "" + +#: order/views.py:111 order/views.py:137 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/views.py:125 +msgid "Cancel sales order" +msgstr "" + +#: order/views.py:151 +msgid "Issue Order" +msgstr "" + +#: order/views.py:160 +msgid "Confirm order placement" +msgstr "" + +#: order/views.py:170 +msgid "Purchase order issued" +msgstr "" + +#: order/views.py:197 +msgid "Confirm order completion" +msgstr "" + +#: order/views.py:208 +msgid "Purchase order completed" +msgstr "" + +#: order/views.py:245 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:489 +msgid "Update prices" +msgstr "" + +#: order/views.py:747 +#, python-brace-format +msgid "Ordered {n} parts" +msgstr "" + +#: order/views.py:858 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:864 +msgid "Price not found" +msgstr "" + +#: order/views.py:867 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:872 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/api.py:491 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:511 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:529 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:561 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:641 +msgid "Valid" +msgstr "" + +#: part/api.py:642 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:647 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:1027 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:1031 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:1046 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:1077 part/api.py:1081 part/api.py:1096 part/api.py:1100 +msgid "This field is required" +msgstr "" + +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:356 +msgid "Default Location" +msgstr "" + +#: part/bom.py:126 templates/email/low_stock_notification.html:17 +msgid "Total Stock" +msgstr "" + +#: part/bom.py:127 part/templates/part/part_base.html:189 +msgid "Available Stock" +msgstr "" + +#: part/bom.py:128 part/templates/part/part_base.html:207 +msgid "On Order" +msgstr "" + +#: part/forms.py:84 +msgid "Select part category" +msgstr "" + +#: part/forms.py:121 +msgid "Add parameter template to same level categories" +msgstr "" + +#: part/forms.py:125 +msgid "Add parameter template to all categories" +msgstr "" + +#: part/forms.py:145 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:113 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords" +msgstr "" + +#: part/models.py:116 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:127 part/templates/part/category.html:128 +#: templates/InvenTree/search.html:95 templates/stats.html:96 +#: users/models.py:40 +msgid "Part Categories" +msgstr "" + +#: part/models.py:368 part/templates/part/cat_link.html:3 +#: part/templates/part/category.html:17 part/templates/part/category.html:133 +#: part/templates/part/category.html:153 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 +#: templates/InvenTree/settings/sidebar.html:39 templates/navbar.html:21 +#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +msgid "Parts" +msgstr "" + +#: part/models.py:460 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:540 part/models.py:552 +#, python-brace-format +msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" +msgstr "" + +#: part/models.py:682 +msgid "Next available serial numbers are" +msgstr "" + +#: part/models.py:686 +msgid "Next available serial number is" +msgstr "" + +#: part/models.py:691 +msgid "Most recent serial number is" +msgstr "" + +#: part/models.py:787 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:816 part/models.py:2695 +msgid "Part name" +msgstr "" + +#: part/models.py:823 +msgid "Is Template" +msgstr "" + +#: part/models.py:824 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:834 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:835 +msgid "Variant Of" +msgstr "" + +#: part/models.py:841 +msgid "Part description" +msgstr "" + +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:320 +msgid "Keywords" +msgstr "" + +#: part/models.py:847 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:283 +#: part/templates/part/set_category.html:15 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +msgid "Category" +msgstr "" + +#: part/models.py:855 +msgid "Part category" +msgstr "" + +#: part/models.py:860 part/templates/part/part_base.html:292 +msgid "IPN" +msgstr "" + +#: part/models.py:861 +msgid "Internal Part Number" +msgstr "" + +#: part/models.py:867 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:868 part/templates/part/part_base.html:299 +#: report/models.py:196 +msgid "Revision" +msgstr "" + +#: part/models.py:890 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:937 part/templates/part/part_base.html:365 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:938 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:945 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:946 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:951 part/templates/part/part_base.html:200 +msgid "Minimum Stock" +msgstr "" + +#: part/models.py:952 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:959 +msgid "Stock keeping units for this part" +msgstr "" + +#: part/models.py:965 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:971 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:977 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:982 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:987 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:992 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:997 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:1002 +msgid "Part notes - supports Markdown formatting" +msgstr "" + +#: part/models.py:1005 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1005 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1008 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1010 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1014 +msgid "Creation User" +msgstr "" + +#: part/models.py:1878 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:2442 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:2459 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:2479 +msgid "Test Name" +msgstr "" + +#: part/models.py:2480 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:2485 +msgid "Test Description" +msgstr "" + +#: part/models.py:2486 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:2491 +msgid "Required" +msgstr "" + +#: part/models.py:2492 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:2497 +msgid "Requires Value" +msgstr "" + +#: part/models.py:2498 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:2503 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:2504 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:2515 +#, python-brace-format +msgid "Illegal character in template name ({c})" +msgstr "" + +#: part/models.py:2551 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:2559 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:2566 +msgid "Parameter Units" +msgstr "" + +#: part/models.py:2596 +msgid "Parent Part" +msgstr "" + +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:2600 +msgid "Data" +msgstr "" + +#: part/models.py:2600 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 +msgid "Default Value" +msgstr "" + +#: part/models.py:2653 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:2687 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:2690 +msgid "Part ID" +msgstr "" + +#: part/models.py:2691 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:2694 +msgid "Part Name" +msgstr "" + +#: part/models.py:2698 +msgid "Part IPN" +msgstr "" + +#: part/models.py:2699 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:2702 +msgid "Level" +msgstr "" + +#: part/models.py:2703 +msgid "BOM level" +msgstr "" + +#: part/models.py:2764 +msgid "Select parent part" +msgstr "" + +#: part/models.py:2772 +msgid "Sub part" +msgstr "" + +#: part/models.py:2773 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:2779 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:2781 part/templates/part/upload_bom.html:58 +msgid "Optional" +msgstr "" + +#: part/models.py:2781 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:2784 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:2785 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:2788 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:2791 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:2793 +msgid "Checksum" +msgstr "" + +#: part/models.py:2793 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:2797 part/templates/part/upload_bom.html:57 +msgid "Inherited" +msgstr "" + +#: part/models.py:2798 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:2803 part/templates/part/upload_bom.html:56 +msgid "Allow Variants" +msgstr "" + +#: part/models.py:2804 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:2889 stock/models.py:469 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:2898 part/models.py:2900 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:3012 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:3034 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:3046 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:3054 +msgid "Substitute part" +msgstr "" + +#: part/models.py:3065 +msgid "Part 1" +msgstr "" + +#: part/models.py:3069 +msgid "Part 2" +msgstr "" + +#: part/models.py:3069 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:3101 +msgid "" +"Error creating relationship: check that the part is not related to itself " +"and that the relationship is unique" +msgstr "" + +#: part/serializers.py:835 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:846 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:847 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:852 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:853 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:858 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:859 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:864 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:865 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:909 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:910 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:937 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:980 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:983 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:986 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:995 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:1003 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:1022 +msgid "At least one BOM item is required" +msgstr "" + +#: part/tasks.py:18 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:19 +#, python-brace-format +msgid "" +"The available stock for {part.name} has fallen below the configured minimum " +"level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +#, python-format +msgid "The BOM for %(part)s has changed, and must be validated.
          " +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "" +"The BOM for %(part)s was last checked by %(checker)s on " +"%(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +#, python-format +msgid "The BOM for %(part)s has not been validated." +msgstr "" + +#: part/templates/part/bom.html:30 part/templates/part/detail.html:263 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/bom.html:34 +msgid "Delete Items" +msgstr "" + +#: part/templates/part/category.html:28 part/templates/part/category.html:32 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:36 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:42 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:47 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:48 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:53 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:61 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "New Category" +msgstr "" + +#: part/templates/part/category.html:80 part/templates/part/category.html:93 +msgid "Category Path" +msgstr "" + +#: part/templates/part/category.html:94 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:114 part/templates/part/category.html:211 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/templates/part/category.html:119 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:157 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:158 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set category" +msgstr "" + +#: part/templates/part/category.html:172 +msgid "Set Category" +msgstr "" + +#: part/templates/part/category.html:176 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export" +msgstr "" + +#: part/templates/part/category.html:178 +msgid "Export Data" +msgstr "" + +#: part/templates/part/category.html:201 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "" + +#: part/templates/part/category.html:333 +msgid "Part created successfully" +msgstr "" + +#: part/templates/part/category_delete.html:7 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: part/templates/part/category_delete.html:12 +#, python-format +msgid "This category contains %(n)s child categories" +msgstr "" + +#: part/templates/part/category_delete.html:14 +#, python-format +msgid "" +"If this category is deleted, these child categories will be moved to " +"%(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:16 +msgid "" +"If this category is deleted, these child categories will be moved to the top " +"level part category" +msgstr "" + +#: part/templates/part/category_delete.html:23 +#, python-format +msgid "This category contains %(n)s parts" +msgstr "" + +#: part/templates/part/category_delete.html:25 +#, python-format +msgid "If this category is deleted, these parts will be moved to %(category)s" +msgstr "" + +#: part/templates/part/category_delete.html:27 +msgid "" +"If this category is deleted, these parts will be moved to the top level part " +"category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:9 +msgid "Duplicate Part" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:52 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:57 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:137 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:152 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:156 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:157 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:184 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:221 part/templates/part/part_sidebar.html:55 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:225 part/templates/part/detail.html:226 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:246 part/templates/part/part_sidebar.html:18 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:251 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:255 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:257 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:267 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:268 +msgid "Copy BOM" +msgstr "" + +#: part/templates/part/detail.html:269 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:274 +msgid "New BOM Item" +msgstr "" + +#: part/templates/part/detail.html:275 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:288 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:306 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:333 stock/templates/stock/item.html:43 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:349 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:377 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:393 +msgid "Delete manufacturer parts" +msgstr "" + +#: part/templates/part/detail.html:596 +msgid "Delete selected BOM items?" +msgstr "" + +#: part/templates/part/detail.html:597 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: part/templates/part/detail.html:646 +msgid "Create BOM Item" +msgstr "" + +#: part/templates/part/detail.html:690 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:698 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:795 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/detail.html:928 +#, python-format +msgid "Purchase Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:940 +#, python-format +msgid "Unit Price-Cost Difference - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:952 +#, python-format +msgid "Supplier Unit Cost - %(currency)s" +msgstr "" + +#: part/templates/part/detail.html:1041 +#, python-format +msgid "Unit Price - %(currency)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:14 +msgid "Unsuffitient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:35 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:35 +#: stock/templates/stock/location.html:34 +msgid "Barcode actions" +msgstr "" + +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:39 +#: stock/templates/stock/location.html:36 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:55 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:67 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:73 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:88 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:91 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:116 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:120 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:128 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:132 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:136 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:143 +msgid "Inactive" +msgstr "" + +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:599 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:177 +#, python-format +msgid "This part is a variant of %(link)s" +msgstr "" + +#: part/templates/part/part_base.html:194 +msgid "In Stock" +msgstr "" + +#: part/templates/part/part_base.html:215 templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:220 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:224 +#: part/templates/part/part_base.html:247 +msgid "Required quantity has not been allocated" +msgstr "" + +#: part/templates/part/part_base.html:226 +#: part/templates/part/part_base.html:249 +msgid "Required quantity has been allocated" +msgstr "" + +#: part/templates/part/part_base.html:236 +msgid "Required for Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:243 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:258 +msgid "Can Build" +msgstr "" + +#: part/templates/part/part_base.html:264 +msgid "Building" +msgstr "" + +#: part/templates/part/part_base.html:313 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:342 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:346 +#: stock/templates/stock/item_base.html:166 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:469 part/templates/part/prices.html:144 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:512 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:593 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 +msgid "Total Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 +#: part/templates/part/prices.html:243 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_sidebar.html:12 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:28 +msgid "Used In" +msgstr "" + +#: part/templates/part/part_sidebar.html:47 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:51 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/partial_delete.html:9 +#, python-format +msgid "" +"Part '%(full_name)s' cannot be deleted as it is still " +"marked as active.\n" +"
          Disable the \"Active\" part attribute and re-try.\n" +" " +msgstr "" + +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "" + +#: part/templates/part/partial_delete.html:22 +#, python-format +msgid "" +"This part is used in BOMs for %(count)s other parts. If you delete this " +"part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format +msgid "" +"There are %(count)s stock entries defined for this part. If you delete this " +"part, the following stock entries will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:43 +#, python-format +msgid "" +"There are %(count)s manufacturers defined for this part. If you delete this " +"part, the following manufacturer parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:54 +#, python-format +msgid "" +"There are %(count)s suppliers defined for this part. If you delete this " +"part, the following supplier parts will also be deleted:" +msgstr "" + +#: part/templates/part/partial_delete.html:65 +#, python-format +msgid "" +"There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this " +"part will permanently remove this tracking information." +msgstr "" + +#: part/templates/part/prices.html:16 +msgid "Pricing ranges" +msgstr "" + +#: part/templates/part/prices.html:22 +msgid "Show supplier cost" +msgstr "" + +#: part/templates/part/prices.html:23 +msgid "Show purchase price" +msgstr "" + +#: part/templates/part/prices.html:50 +msgid "Show BOM cost" +msgstr "" + +#: part/templates/part/prices.html:117 +msgid "Show sale cost" +msgstr "" + +#: part/templates/part/prices.html:118 +msgid "Show sale price" +msgstr "" + +#: part/templates/part/prices.html:140 +msgid "Calculation parameters" +msgstr "" + +#: part/templates/part/prices.html:155 +msgid "Supplier Cost" +msgstr "" + +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:181 +msgid "Stock Pricing" +msgstr "" + +#: part/templates/part/prices.html:190 +msgid "No stock pricing history is available for this part." +msgstr "" + +#: part/templates/part/prices.html:200 +msgid "Internal Cost" +msgstr "" + +#: part/templates/part/prices.html:215 part/views.py:1309 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:230 +msgid "BOM Cost" +msgstr "" + +#: part/templates/part/prices.html:256 +msgid "Sale Cost" +msgstr "" + +#: part/templates/part/prices.html:296 +msgid "No sale pice history available for this part." +msgstr "" + +#: part/templates/part/set_category.html:9 +msgid "Set category for the following parts" +msgstr "" + +#: part/templates/part/stock_count.html:7 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "" +"The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +#, python-format +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" + +#: part/templatetags/inventree_extras.py:189 +msgid "Unknown database" +msgstr "" + +#: part/views.py:88 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:138 +#, python-brace-format +msgid "Set category for {n} parts" +msgstr "" + +#: part/views.py:210 +msgid "Match References" +msgstr "" + +#: part/views.py:507 +msgid "None" +msgstr "" + +#: part/views.py:566 +msgid "Part QR Code" +msgstr "" + +#: part/views.py:668 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:694 +msgid "Updated part image" +msgstr "" + +#: part/views.py:697 +msgid "Part image not found" +msgstr "" + +#: part/views.py:785 +msgid "Confirm Part Deletion" +msgstr "" + +#: part/views.py:792 +msgid "Part was deleted" +msgstr "" + +#: part/views.py:801 +msgid "Part Pricing" +msgstr "" + +#: part/views.py:950 +msgid "Create Part Parameter Template" +msgstr "" + +#: part/views.py:960 +msgid "Edit Part Parameter Template" +msgstr "" + +#: part/views.py:967 +msgid "Delete Part Parameter Template" +msgstr "" + +#: part/views.py:1010 +msgid "Edit Part Category" +msgstr "" + +#: part/views.py:1048 +msgid "Delete Part Category" +msgstr "" + +#: part/views.py:1054 +msgid "Part category was deleted" +msgstr "" + +#: part/views.py:1063 +msgid "Create Category Parameter Template" +msgstr "" + +#: part/views.py:1164 +msgid "Edit Category Parameter Template" +msgstr "" + +#: part/views.py:1220 +msgid "Delete Category Parameter Template" +msgstr "" + +#: part/views.py:1242 +msgid "Added new price break" +msgstr "" + +#: part/views.py:1318 +msgid "Edit Internal Price Break" +msgstr "" + +#: part/views.py:1326 +msgid "Delete Internal Price Break" +msgstr "" + +#: plugin/apps.py:52 +msgid "" +"Your enviroment has an outdated git version. This prevents InvenTree from " +"loading plugin details." +msgstr "" + +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 +msgid "No author found" +msgstr "" + +#: plugin/integration.py:160 +msgid "No date found" +msgstr "" + +#: plugin/models.py:26 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:27 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:32 +msgid "Key" +msgstr "" + +#: plugin/models.py:33 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:41 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:47 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:182 +msgid "Plugin" +msgstr "" + +#: plugin/samples/integration/sample.py:42 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:43 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:48 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:49 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/serializers.py:49 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:50 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:55 +msgid "Package Name" +msgstr "" + +#: plugin/serializers.py:56 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:59 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:60 +msgid "" +"This will install this plugin now into the current instance. The instance " +"will go into maintenance." +msgstr "" + +#: plugin/serializers.py:75 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:77 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: report/api.py:235 report/api.py:282 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/models.py:178 +msgid "Template name" +msgstr "" + +#: report/models.py:184 +msgid "Report template file" +msgstr "" + +#: report/models.py:191 +msgid "Report template description" +msgstr "" + +#: report/models.py:197 +msgid "Report revision number (auto-increments)" +msgstr "" + +#: report/models.py:288 +msgid "Pattern for generating report filenames" +msgstr "" + +#: report/models.py:295 +msgid "Report template is enabled" +msgstr "" + +#: report/models.py:319 +msgid "StockItem query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:327 +msgid "Include Installed Tests" +msgstr "" + +#: report/models.py:328 +msgid "Include test results for stock items installed inside assembled item" +msgstr "" + +#: report/models.py:378 +msgid "Build Filters" +msgstr "" + +#: report/models.py:379 +msgid "Build query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:421 +msgid "Part Filters" +msgstr "" + +#: report/models.py:422 +msgid "Part query filters (comma-separated list of key=value pairs" +msgstr "" + +#: report/models.py:456 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:494 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:548 +msgid "Snippet" +msgstr "" + +#: report/models.py:549 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:553 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:588 +msgid "Asset" +msgstr "" + +#: report/models.py:589 +msgid "Report asset file" +msgstr "" + +#: report/models.py:592 +msgid "Asset file description" +msgstr "" + +#: report/templates/report/inventree_build_order_base.html:147 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:79 +#: stock/models.py:631 stock/templates/stock/item_base.html:156 +msgid "Serial Number" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:88 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:2154 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:94 +#: stock/models.py:2160 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin_settings.html:38 +msgid "Date" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:108 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:110 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +msgid "Serial" +msgstr "" + +#: stock/api.py:543 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:550 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:575 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:688 +#: stock/templates/stock/item_base.html:193 +msgid "Expiry Date" +msgstr "" + +#: stock/forms.py:75 stock/forms.py:199 +msgid "Expiration date for this stock item" +msgstr "" + +#: stock/forms.py:78 +msgid "Enter unique serial numbers (or leave blank)" +msgstr "" + +#: stock/forms.py:133 +msgid "" +"Destination for serialized stock (by default, will remain in current " +"location)" +msgstr "" + +#: stock/forms.py:135 +msgid "Serial numbers" +msgstr "" + +#: stock/forms.py:135 +msgid "Unique serial numbers (must match quantity)" +msgstr "" + +#: stock/forms.py:137 stock/forms.py:171 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/forms.py:169 +msgid "Destination location for uninstalled items" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm uninstall" +msgstr "" + +#: stock/forms.py:173 +msgid "Confirm removal of installed stock items" +msgstr "" + +#: stock/models.py:91 stock/models.py:725 +#: stock/templates/stock/item_base.html:407 +msgid "Owner" +msgstr "" + +#: stock/models.py:92 stock/models.py:726 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:442 +msgid "StockItem with this serial number already exists" +msgstr "" + +#: stock/models.py:486 +#, python-brace-format +msgid "Part type ('{pf}') must be {pe}" +msgstr "" + +#: stock/models.py:496 stock/models.py:505 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:497 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:519 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:525 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:532 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:575 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:584 +msgid "Base part" +msgstr "" + +#: stock/models.py:592 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:598 stock/templates/stock/location.html:16 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:601 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:608 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:614 stock/templates/stock/item_base.html:282 +msgid "Installed In" +msgstr "" + +#: stock/models.py:617 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:633 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:647 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:651 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:660 +msgid "Source Build" +msgstr "" + +#: stock/models.py:662 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:673 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:676 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:682 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:689 +msgid "" +"Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:702 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:702 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:712 stock/templates/stock/item.html:137 +msgid "Stock Item Notes" +msgstr "" + +#: stock/models.py:721 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:753 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1273 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1279 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1285 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({n})" +msgstr "" + +#: stock/models.py:1288 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1291 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1298 +#, python-brace-format +msgid "Serial numbers already exist: {exists}" +msgstr "" + +#: stock/models.py:1369 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1372 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1375 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1378 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1381 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1384 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1391 stock/serializers.py:832 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1395 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1399 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1403 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1575 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2074 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2131 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2137 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2155 +msgid "Test name" +msgstr "" + +#: stock/models.py:2161 +msgid "Test result" +msgstr "" + +#: stock/models.py:2167 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2174 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2180 +msgid "Test notes" +msgstr "" + +#: stock/serializers.py:173 +msgid "Purchase price of this stock item" +msgstr "" + +#: stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: stock/serializers.py:294 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:309 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:315 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:326 stock/serializers.py:789 stock/serializers.py:1030 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:333 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:346 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:363 stock/views.py:1019 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/serializers.py:405 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:421 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:428 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:646 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:650 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:654 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:684 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:690 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:698 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:708 stock/serializers.py:938 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:796 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:801 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:802 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:807 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:808 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:818 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:900 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:928 +msgid "Stock transaction notes" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:22 +msgid "New Entry" +msgstr "" + +#: stock/templates/stock/item.html:74 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:82 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:91 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:99 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:103 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:152 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:156 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:316 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:42 +msgid "Unlink Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:44 +msgid "Link Barcode" +msgstr "" + +#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:54 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:70 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:83 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:96 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:100 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:118 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:161 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:170 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:197 +msgid "Expired" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:199 +msgid "Stale" +msgstr "" + +#: stock/templates/stock/item_base.html:206 +msgid "Last Updated" +msgstr "" + +#: stock/templates/stock/item_base.html:211 +msgid "Last Stocktake" +msgstr "" + +#: stock/templates/stock/item_base.html:215 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:224 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:225 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:238 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:246 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:254 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:260 +msgid "" +"This stock item is serialized - it has a unique serial number and the " +"quantity cannot be adjusted." +msgstr "" + +#: stock/templates/stock/item_base.html:301 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:308 +msgid "Barcode Identifier" +msgstr "" + +#: stock/templates/stock/item_base.html:350 +msgid "Parent Item" +msgstr "" + +#: stock/templates/stock/item_base.html:368 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:393 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:411 +msgid "" +"You are not in the list of owners of this item. This stock item cannot be " +"edited." +msgstr "" + +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:486 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_delete.html:9 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: stock/templates/stock/item_delete.html:12 +#, python-format +msgid "" +"This will remove %(qty)s units of %(full_name)s from stock." +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:40 +msgid "Check-in Items" +msgstr "" + +#: stock/templates/stock/location.html:68 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:81 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:82 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 +msgid "Location Path" +msgstr "" + +#: stock/templates/stock/location.html:107 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:113 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:117 +msgid "" +"You are not in the list of owners of this location. This stock location " +"cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/stats.html:109 users/models.py:42 +msgid "Stock Locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:8 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: stock/templates/stock/location_delete.html:13 +#, python-format +msgid "This location contains %(n)s child locations" +msgstr "" + +#: stock/templates/stock/location_delete.html:15 +#, python-format +msgid "" +"If this location is deleted, these child locations will be moved to " +"%(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:17 +msgid "" +"If this location is deleted, these child locations will be moved to the top " +"level stock location" +msgstr "" + +#: stock/templates/stock/location_delete.html:25 +#, python-format +msgid "This location contains %(n)s stock items" +msgstr "" + +#: stock/templates/stock/location_delete.html:27 +#, python-format +msgid "" +"If this location is deleted, these stock items will be moved to %(location)s" +msgstr "" + +#: stock/templates/stock/location_delete.html:29 +msgid "" +"If this location is deleted, these stock items will be moved to the top " +"level stock location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/templates/stock/stock_uninstall.html:8 +msgid "The following stock items will be uninstalled" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:8 +#, python-format +msgid "This stock item is current an instance of %(part)s" +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tracking_delete.html:6 +msgid "Are you sure you want to delete this stock tracking entry?" +msgstr "" + +#: stock/views.py:152 +msgid "Edit Stock Location" +msgstr "" + +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 +msgid "Owner is required (ownership control is enabled)" +msgstr "" + +#: stock/views.py:274 +msgid "Stock Location QR code" +msgstr "" + +#: stock/views.py:293 +msgid "Return to Stock" +msgstr "" + +#: stock/views.py:302 +msgid "Specify a valid location" +msgstr "" + +#: stock/views.py:313 +msgid "Stock item returned from customer" +msgstr "" + +#: stock/views.py:324 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:341 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:342 +msgid "Check the confirmation box" +msgstr "" + +#: stock/views.py:357 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/views.py:382 +msgid "Uninstall Stock Items" +msgstr "" + +#: stock/views.py:479 +msgid "Confirm stock adjustment" +msgstr "" + +#: stock/views.py:490 +msgid "Uninstalled stock items" +msgstr "" + +#: stock/views.py:512 +msgid "Edit Stock Item" +msgstr "" + +#: stock/views.py:672 +msgid "Create new Stock Location" +msgstr "" + +#: stock/views.py:773 +msgid "Create new Stock Item" +msgstr "" + +#: stock/views.py:915 +msgid "Duplicate Stock Item" +msgstr "" + +#: stock/views.py:997 +msgid "Quantity cannot be negative" +msgstr "" + +#: stock/views.py:1097 +msgid "Delete Stock Location" +msgstr "" + +#: stock/views.py:1110 +msgid "Delete Stock Item" +msgstr "" + +#: stock/views.py:1121 +msgid "Delete Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1128 +msgid "Edit Stock Tracking Entry" +msgstr "" + +#: stock/views.py:1137 +msgid "Add Stock Tracking Entry" +msgstr "" + +#: templates/403.html:5 templates/403.html:11 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:14 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/404.html:5 templates/404.html:11 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:14 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:5 templates/500.html:11 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:14 +msgid "The InvenTree server raised an internal error" +msgstr "" + +#: templates/500.html:15 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:10 templates/503.html:35 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:41 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:88 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:98 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:108 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:119 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:145 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:168 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:191 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:202 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:224 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:235 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:255 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:266 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:286 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:297 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:8 +msgid "Currency Settings" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:19 +msgid "Base Currency" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:24 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:38 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:44 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/currencies.html:49 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/global.html:9 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:31 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:131 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "" +"The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part.html:62 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:10 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:16 +msgid "" +"Changing the settings below require you to immediatly restart InvenTree. Do " +"not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:34 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:39 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:129 +#: users/models.py:39 +msgid "Admin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin_settings.html:28 +msgid "Author" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:52 +#: templates/InvenTree/settings/plugin_settings.html:43 +msgid "Version" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 +msgid "Inactive plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:122 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:131 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:10 +#, python-format +msgid "Plugin details for %(name)s" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:17 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:48 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:62 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:71 +msgid "" +"The code information is pulled from the latest git commit for this plugin. " +"It might not reflect official version numbers or information but the actual " +"code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:77 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:83 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:86 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:88 +msgid "This plugin was found in a local InvenTree path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:94 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:104 +#: templates/about.html:47 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +#: templates/about.html:40 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:112 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +msgid "Sign Status" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:122 +msgid "Sign Key" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reports.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:37 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:42 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:116 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:118 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:120 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings.html:209 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:310 +msgid "No part parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +msgid "Label Printing" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:29 +msgid "Server Configuration" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Currencies" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:18 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:22 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 +msgid "Username" +msgstr "" + +#: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 +msgid "Last Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:54 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:149 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +#: templates/InvenTree/settings/user.html:201 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "" +"You currently do not have any email address set up. You should really add an " +"email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:104 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:109 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:117 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:122 +msgid "" +"You can sign in to your account using any of the following third party " +"accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "" +"You currently have no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user.html:162 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:172 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "You currently do not have any factors set up." +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:210 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:212 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:220 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:226 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:227 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:236 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:237 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:241 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:242 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:243 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:252 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:254 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:266 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:27 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:37 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:48 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:56 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:65 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:90 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:103 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:104 +#, python-format +msgid "" +"Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are " +"welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + +#: templates/about.html:10 +msgid "InvenTree Version Information" +msgstr "" + +#: templates/about.html:11 templates/about.html:105 templates/modals.html:15 +#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/about.html:20 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:25 +msgid "Development Version" +msgstr "" + +#: templates/about.html:28 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:30 +msgid "Update Available" +msgstr "" + +#: templates/about.html:53 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:58 +msgid "API Version" +msgstr "" + +#: templates/about.html:63 +msgid "Python Version" +msgstr "" + +#: templates/about.html:68 +msgid "Django Version" +msgstr "" + +#: templates/about.html:73 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:78 +msgid "Credits" +msgstr "" + +#: templates/about.html:83 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:88 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:95 templates/clip.html:4 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:95 +msgid "copy version information" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:10 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:16 +#, python-format +msgid "" +"Please confirm that %(email)s is an email " +"address for user %(user_display)s." +msgstr "" + +#: templates/account/email_confirm.html:27 +#, python-format +msgid "" +"This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:16 +#: templates/account/login.html:39 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:21 +#, python-format +msgid "" +"Please sign in with one\n" +"of your existing third party accounts or sign up\n" +"for a account and sign in below:" +msgstr "" + +#: templates/account/login.html:25 +#, python-format +msgid "" +"If you have not created an account yet, then please\n" +"sign up first." +msgstr "" + +#: templates/account/login.html:42 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:47 +msgid "InvenTree demo instance" +msgstr "" + +#: templates/account/login.html:47 +msgid "Click here for login details" +msgstr "" + +#: templates/account/login.html:55 +msgid "or use SSO" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "" +"Forgotten your password? Enter your email address below, and we'll send you " +"an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:36 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:11 templates/account/signup.html:22 +msgid "Sign Up" +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "" +"Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:27 +msgid "Or use a SSO-provider for signup" +msgstr "" + +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:12 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "" +"Backup tokens have been generated, but are not revealed here for security " +"reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No tokens. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:27 +msgid "Generate backup tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:31 +#: templates/allauth_2fa/setup.html:40 +msgid "Back to settings" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:14 +msgid "Disable Two-Factor" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "" +"Scan the QR code below with a token generator of your choice (for instance " +"Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:23 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:27 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:35 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 +msgid "Add Attachment" +msgstr "" + +#: templates/base.html:99 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:102 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:102 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:18 +msgid "Available" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:31 +msgid "" +"You are receiving this email because you are subscribed to notifications for " +"this part " +msgstr "" + +#: templates/email/email.html:35 +msgid "InvenTree version" +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:19 +msgid "Minimum Quantity" +msgstr "" + +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + +#: templates/modals.html:19 templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/navbar.html:42 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:54 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:94 templates/search.html:8 +#: templates/search_form.html:6 templates/search_form.html:7 +msgid "Search" +msgstr "" + +#: templates/navbar.html:101 +msgid "Scan Barcode" +msgstr "" + +#: templates/navbar.html:108 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:111 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:132 +msgid "Logout" +msgstr "" + +#: templates/navbar.html:134 +msgid "Login" +msgstr "" + +#: templates/navbar.html:154 +msgid "About InvenTree" +msgstr "" + +#: templates/navbar_demo.html:5 +msgid "InvenTree demo mode" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:6 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:8 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:29 +msgid "Searching" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + +#: templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/stock_table.html:17 +msgid "Barcode Actions" +msgstr "" + +#: templates/stock_table.html:33 +msgid "Print test reports" +msgstr "" + +#: templates/stock_table.html:40 +msgid "Stock Options" +msgstr "" + +#: templates/stock_table.html:45 +msgid "Add to selected stock items" +msgstr "" + +#: templates/stock_table.html:46 +msgid "Remove from selected stock items" +msgstr "" + +#: templates/stock_table.html:47 +msgid "Stocktake selected stock items" +msgstr "" + +#: templates/stock_table.html:48 +msgid "Move selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge selected stock items" +msgstr "" + +#: templates/stock_table.html:49 +msgid "Merge stock" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order selected items" +msgstr "" + +#: templates/stock_table.html:50 +msgid "Order stock" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:52 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete selected items" +msgstr "" + +#: templates/stock_table.html:55 +msgid "Delete stock" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:64 +msgid "Users" +msgstr "" + +#: users/admin.py:65 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:187 +msgid "The following users are members of multiple groups:" +msgstr "" + +#: users/admin.py:210 +msgid "Personal info" +msgstr "" + +#: users/admin.py:211 +msgid "Permissions" +msgstr "" + +#: users/admin.py:214 +msgid "Important dates" +msgstr "" + +#: users/models.py:201 +msgid "Permission set" +msgstr "" + +#: users/models.py:209 +msgid "Group" +msgstr "" + +#: users/models.py:212 +msgid "View" +msgstr "" + +#: users/models.py:212 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:214 +msgid "Add" +msgstr "" + +#: users/models.py:214 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:216 +msgid "Change" +msgstr "" + +#: users/models.py:216 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:218 +msgid "Permission to delete items" +msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index d0d533c5d5..f6dd0da907 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "Конечная точка API не обнаружена" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Действие не указано" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Соответствующее действие не найдено" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "Повторяющийся серийный номер: {sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "недопустимое количество" @@ -122,7 +122,7 @@ msgstr "Файл не найден" msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Вложения" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Выберите файл для вложения" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Ссылка" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -152,11 +152,12 @@ msgstr "Комментарий" msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Пользователь" @@ -193,42 +194,42 @@ msgstr "Ошибка переименования файла" msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Название" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Описание" @@ -240,7 +241,7 @@ msgstr "Описание (необязательно)" msgid "parent" msgstr "родитель" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Должно быть действительным номером" @@ -278,7 +279,7 @@ msgstr "Строки данных в файле не найдены" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Строки данных в файле не найдены" #: InvenTree/serializers.py:536 msgid "No data columns supplied" @@ -292,89 +293,101 @@ msgstr "" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" +msgstr "Повторяющийся столбец: '{col}'" + +#: InvenTree/settings.py:675 +msgid "Czech" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:676 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "Венгерский" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:679 -msgid "Portugese" -msgstr "Португальский" +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Китайский" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "Ошибка проверки состояния системы InvenTree" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Ожидаемый" @@ -399,14 +412,14 @@ msgstr "Ожидаемый" msgid "Placed" msgstr "Размещены" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Готово" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Отменено" @@ -445,91 +458,95 @@ msgstr "Разрушено" msgid "Rejected" msgstr "Отклоненный" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Отслеживание устаревших запасов" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Товар создан" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Отредактированный товар" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Присвоенный серийный номер" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Склад подсчитан" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Добавлен вручную" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Удалено вручную" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Расположение изменено" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Укомплектовано" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Удалено из сборки" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Установленный элемент компонента" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Удален элемент компонента" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Отделить от родительского элемента" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Разбить дочерний элемент" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "Объединенные позиции на складе" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Отправлено клиенту" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Возвращено от клиента" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Создан вывод заказа сборки" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Вывод заказа сборки завершён" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Получено по заказу на покупку" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Продукция" @@ -589,7 +606,7 @@ msgstr "Установить пароль" msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Информация о системе" @@ -654,11 +671,11 @@ msgstr "Порядок сборки" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Порядок сборки" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Ссылка на заказ" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Отсылка" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Краткое описание сборки" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Родительская сборка" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Детали" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Расположение источника" @@ -775,16 +793,16 @@ msgid "Build status code" msgstr "Код статуса сборки" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" -msgstr "Штрих код" +msgstr "Код партии" #: build/models.py:291 build/serializers.py:219 msgid "Batch code for this build output" -msgstr "Штрих код для этого вывода сборки" +msgstr "Код партии для этого вывода сборки" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Дата создания" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Дата завершения" @@ -805,7 +823,7 @@ msgstr "Дата завершения" msgid "completed by" msgstr "выполнено" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Выдал/ла" @@ -814,23 +832,23 @@ msgid "User who issued this build order" msgstr "Пользователь, выпустивший этот заказ на сборку" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Ответственный" #: build/models.py:326 msgid "User responsible for this build order" -msgstr "Пользователь ответственный за этот заказ сборки" +msgstr "Пользователь, ответственный за этот заказ сборки" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Внешняя ссылка" @@ -839,17 +857,17 @@ msgstr "Внешняя ссылка" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Заметки" @@ -869,69 +887,69 @@ msgstr "Вывод сборки уже завершен" msgid "Build output does not match Build Order" msgstr "Вывод сборки не совпадает с порядком сборки" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "Предмет на складе перераспределен" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Выделенное количество должно быть больше нуля" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" -msgstr "Выбранный предмет со складом не найден в BOM" +msgstr "Выбранная единица хранения не найдена в BOM" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Сборка" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Предметы на складе" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Исходный складской предмет" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Исходный складской предмет" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Количество" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Серийные номера" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Расположение" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Статус" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "BOM Компонент" @@ -1172,7 +1190,7 @@ msgstr "Для заказа сборки необходим остаток" #: order/templates/order/order_base.html:28 #: order/templates/order/sales_order_base.html:38 msgid "Print actions" -msgstr "" +msgstr "Печать" #: build/templates/build/build_base.html:43 msgid "Print build order report" @@ -1180,7 +1198,7 @@ msgstr "Печать отчета о заказе сборки" #: build/templates/build/build_base.html:50 msgid "Build actions" -msgstr "" +msgstr "Действия со сборкой" #: build/templates/build/build_base.html:54 msgid "Edit Build" @@ -1202,7 +1220,7 @@ msgstr "Завершить сборку" #: build/templates/build/build_base.html:87 msgid "Build Description" -msgstr "" +msgstr "Описание сборки" #: build/templates/build/build_base.html:101 #, python-format @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Целевая дата" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "Просрочено" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Завершённые" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Заказ покупателя" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Выдано" @@ -1292,192 +1310,196 @@ msgstr "" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Вы уверены, что хотите отменить эту сборку?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "Вы уверены, что хотите удалить эту сборку?" + +#: build/templates/build/detail.html:15 msgid "Build Details" -msgstr "" +msgstr "Подробности сборки" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" -msgstr "" +msgstr "Назначение" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Партия" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Создано" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Нет конечной даты" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" -msgstr "" +msgstr "Сборка не завершена" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Заказать детали" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" -msgstr "" +msgstr "Вывод" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Печать" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Приложения" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Заметки сборки" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" -msgstr "" +msgstr "Новый заказ на сборку" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "Печатать заказ на сборку" #: build/templates/build/index.html:44 #: order/templates/order/purchase_orders.html:34 @@ -1501,39 +1523,39 @@ msgstr "" #: build/views.py:73 msgid "Build was cancelled" -msgstr "" +msgstr "Сборка была отменена" #: build/views.py:114 msgid "Delete Build Order" -msgstr "" +msgstr "Удалить заказ на сборку" #: common/files.py:65 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "Неподдерживаемый формат файла: {ext.upper()}" #: common/files.py:67 msgid "Error reading file (invalid encoding)" -msgstr "" +msgstr "Ошибка чтения файла (неверная кодировка)" #: common/files.py:72 msgid "Error reading file (invalid format)" -msgstr "" +msgstr "Ошибка чтения файла (неверный формат)" #: common/files.py:74 msgid "Error reading file (incorrect dimension)" -msgstr "" +msgstr "Ошибка чтения файла (неверный размер)" #: common/files.py:76 msgid "Error reading file (data could be corrupted)" -msgstr "" +msgstr "Ошибка чтения файла (данные могут быть повреждены)" #: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Файл" #: common/forms.py:35 msgid "Select file to upload" -msgstr "" +msgstr "Выберите файл для загрузки" #: common/forms.py:50 msgid "{name.title()} File" @@ -1542,851 +1564,939 @@ msgstr "" #: common/forms.py:51 #, python-brace-format msgid "Select {name} file to upload" -msgstr "" +msgstr "Выберите {name} файл для загрузки" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" -msgstr "" +msgstr "Требуется перезапуск" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "Название компании" + +#: common/models.py:708 +msgid "Internal company name" +msgstr "Внутреннее название компании" + +#: common/models.py:713 +msgid "Base URL" +msgstr "Базовая ссылка" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "Базовая ссылка для экземпляра сервера" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "Валюта по умолчанию" + +#: common/models.py:721 +msgid "Default currency" +msgstr "Валюта по умолчанию" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "Скачать по ссылке" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "Разрешить повторяющиеся IPN" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "Разрешить редактирование IPN" + +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" -msgstr "" +msgstr "Шаблон" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" -msgstr "" +msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" -msgstr "" +msgstr "Сборка" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" -msgstr "" +msgstr "Компонент" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" -msgstr "" +msgstr "Можно продавать" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" -msgstr "" +msgstr "Отслеживание" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" -msgstr "" +msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" -msgstr "" +msgstr "Показывать цену в формах" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" -msgstr "" +msgstr "Показывать цену в BOM" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" -msgstr "" +msgstr "Показывать историю цены" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" -msgstr "" +msgstr "Показывать связанные детали" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Режим отладки" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" +msgstr "Необходимо указать EMail" + +#: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1028 +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" -msgstr "" +msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" -msgstr "" +msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" -msgstr "" +msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" -msgstr "" +msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" -msgstr "" +msgstr "Показывать последние детали" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" -msgstr "" +msgstr "Показывать последние детали на главной странице" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" -msgstr "" +msgstr "Показывать непроверенные BOMы" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" -msgstr "" +msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" -msgstr "" +msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" -msgstr "" +msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" -msgstr "" +msgstr "Показывать низкие складские запасы" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" -msgstr "" +msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" -msgstr "" +msgstr "Показывать закончившиеся детали" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" -msgstr "" +msgstr "Показывать закончившиеся на складе единицы хранения на главной странице" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" -msgstr "" +msgstr "Показывать требуемые детали" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" -msgstr "" +msgstr "Показывать требуемые для сборки единицы хранения на главной странице" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" -msgstr "" +msgstr "Показывать просрочку" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" -msgstr "" +msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" -msgstr "" +msgstr "Показывать залежалые" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" -msgstr "" +msgstr "Показывать залежалые единицы хранения на главной странице" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" -msgstr "" +msgstr "Показывать незавершённые сборки" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" -msgstr "" +msgstr "Показывать незавершённые сборки на главной странице" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" -msgstr "" +msgstr "Показывать просроченные сборки" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" -msgstr "" +msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 +#: common/models.py:1257 +msgid "Enable email notifications" +msgstr "Включить уведомления по электронной почте" + +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" +msgstr "Разрешить отправку уведомлений о событиях по электронной почте" + +#: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 msgid "Inline label display" msgstr "" -#: common/models.py:1193 +#: common/models.py:1272 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1199 +#: common/models.py:1278 msgid "Inline report display" msgstr "" -#: common/models.py:1200 +#: common/models.py:1279 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1206 +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 msgid "Search Preview Results" msgstr "" -#: common/models.py:1207 -msgid "Number of results to show in search preview window" +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 +#: common/models.py:1341 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1221 +#: common/models.py:1342 msgid "Hide inactive parts in search preview window" msgstr "" -#: common/models.py:1227 +#: common/models.py:1348 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1228 +#: common/models.py:1349 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1234 +#: common/models.py:1355 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1235 +#: common/models.py:1356 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1241 +#: common/models.py:1362 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1248 +#: common/models.py:1369 msgid "Date Format" msgstr "" -#: common/models.py:1249 +#: common/models.py:1370 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1263 part/templates/part/detail.html:40 +#: common/models.py:1384 part/templates/part/detail.html:39 msgid "Part Scheduling" msgstr "" -#: common/models.py:1264 +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" -msgstr "" +msgstr "Цена" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" -msgstr "" +msgstr "Загрузить файл" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2401,7 +2511,7 @@ msgstr "" #: common/views.py:495 msgid "Parts imported" -msgstr "" +msgstr "Детали импортированы" #: common/views.py:517 order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:47 @@ -2409,187 +2519,188 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" -msgstr "" +msgstr "Предыдущий шаг" #: company/forms.py:24 part/forms.py:46 #: templates/InvenTree/settings/mixins/urls.html:14 msgid "URL" -msgstr "" +msgstr "Ссылка" #: company/forms.py:25 part/forms.py:47 msgid "Image URL" -msgstr "" +msgstr "Ссылка на изображение" #: company/models.py:105 msgid "Company description" -msgstr "" +msgstr "Описание компании" #: company/models.py:106 msgid "Description of the company" -msgstr "" +msgstr "Описание компании" #: company/models.py:112 company/templates/company/company_base.html:97 #: templates/InvenTree/settings/plugin_settings.html:55 #: templates/js/translated/company.js:349 msgid "Website" -msgstr "" +msgstr "Сайт" #: company/models.py:113 msgid "Company website URL" -msgstr "" +msgstr "Сайт компании" #: company/models.py:117 company/templates/company/company_base.html:115 msgid "Address" -msgstr "" +msgstr "Адрес" #: company/models.py:118 msgid "Company address" -msgstr "" +msgstr "Адрес компании" #: company/models.py:121 msgid "Phone number" -msgstr "" +msgstr "Телефон" #: company/models.py:122 msgid "Contact phone number" -msgstr "" +msgstr "Контактный телефон" #: company/models.py:125 company/templates/company/company_base.html:129 #: templates/InvenTree/settings/user.html:48 msgid "Email" -msgstr "" +msgstr "EMail" #: company/models.py:125 msgid "Contact email address" -msgstr "" +msgstr "Контактный EMail" #: company/models.py:128 company/templates/company/company_base.html:136 msgid "Contact" -msgstr "" +msgstr "Контакт" #: company/models.py:129 msgid "Point of contact" -msgstr "" +msgstr "Контактное лицо" #: company/models.py:131 msgid "Link to external company information" -msgstr "" +msgstr "Ссылка на описание компании" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" -msgstr "" +msgstr "Изображение" #: company/models.py:144 msgid "is customer" -msgstr "" +msgstr "покупатель" #: company/models.py:144 msgid "Do you sell items to this company?" -msgstr "" +msgstr "Вы продаёте детали этой компании?" #: company/models.py:146 msgid "is supplier" -msgstr "" +msgstr "поставщик" #: company/models.py:146 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "Вы закупаете детали у этой компании?" #: company/models.py:148 msgid "is manufacturer" -msgstr "" +msgstr "производитель" #: company/models.py:148 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "Является ли компания производителем деталей?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" -msgstr "" +msgstr "Валюта" #: company/models.py:155 msgid "Default currency used for this company" -msgstr "" +msgstr "Для этой компании используется валюта по умолчанию" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" -msgstr "" +msgstr "Базовая деталь" #: company/models.py:324 company/models.py:539 msgid "Select part" -msgstr "" +msgstr "Выберите деталь" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" -msgstr "" +msgstr "Производитель" #: company/models.py:336 templates/js/translated/part.js:236 msgid "Select manufacturer" -msgstr "" +msgstr "Выберите производителя" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" -msgstr "" +msgstr "MPN" #: company/models.py:343 templates/js/translated/part.js:247 msgid "Manufacturer Part Number" -msgstr "" +msgstr "Код производителя" #: company/models.py:349 msgid "URL for external manufacturer part link" -msgstr "" +msgstr "Ссылка на сайт производителя" #: company/models.py:355 msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" -msgstr "" +msgstr "Деталь производителя" #: company/models.py:416 msgid "Parameter name" -msgstr "" +msgstr "Наименование параметра" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" -msgstr "" +msgstr "Значение" #: company/models.py:423 msgid "Parameter value" -msgstr "" +msgstr "Значение параметра" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" -msgstr "" +msgstr "Ед.изм" #: company/models.py:430 msgid "Parameter units" -msgstr "" +msgstr "Единицы измерения" #: company/models.py:502 msgid "Linked manufacturer part must reference the same base part" @@ -2599,27 +2710,27 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" -msgstr "" +msgstr "Поставщик" #: company/models.py:546 templates/js/translated/part.js:217 msgid "Select supplier" -msgstr "" +msgstr "Выберите поставщика" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" -msgstr "" +msgstr "SKU" #: company/models.py:552 templates/js/translated/part.js:228 msgid "Supplier stock keeping unit" -msgstr "" +msgstr "Код поставщика" #: company/models.py:559 msgid "Select manufacturer part" @@ -2627,38 +2738,38 @@ msgstr "" #: company/models.py:565 msgid "URL for external supplier part link" -msgstr "" +msgstr "Ссылка на сайт поставщика" #: company/models.py:571 msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" -msgstr "" +msgstr "Заметка" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" -msgstr "" +msgstr "Упаковка" #: company/models.py:582 msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2672,293 +2783,295 @@ msgstr "" #: company/serializers.py:70 msgid "Default currency used for this supplier" -msgstr "" +msgstr "Для этого поставщика используется валюта по умолчанию" #: company/serializers.py:71 msgid "Currency Code" -msgstr "" +msgstr "Код валюты" #: company/templates/company/company_base.html:8 #: company/templates/company/company_base.html:12 #: templates/InvenTree/search.html:176 templates/js/translated/company.js:322 msgid "Company" -msgstr "" +msgstr "Компания" #: company/templates/company/company_base.html:22 #: templates/js/translated/order.js:279 msgid "Create Purchase Order" -msgstr "" +msgstr "Создать заказ на закупку" #: company/templates/company/company_base.html:26 msgid "Company actions" -msgstr "" +msgstr "Действия с компанией" #: company/templates/company/company_base.html:31 msgid "Edit company information" -msgstr "" +msgstr "Редактировать информацию о компании" #: company/templates/company/company_base.html:32 #: templates/js/translated/company.js:265 msgid "Edit Company" -msgstr "" +msgstr "Редактировать компанию" #: company/templates/company/company_base.html:36 msgid "Delete company" -msgstr "" +msgstr "Удалить компанию" #: company/templates/company/company_base.html:37 #: company/templates/company/company_base.html:159 msgid "Delete Company" -msgstr "" +msgstr "Удалить компанию" #: company/templates/company/company_base.html:53 #: part/templates/part/part_thumb.html:12 msgid "Upload new image" -msgstr "" +msgstr "Загрузить новое изображение" #: company/templates/company/company_base.html:56 #: part/templates/part/part_thumb.html:14 msgid "Download image from URL" -msgstr "" +msgstr "Скачать изображение по ссылке" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" -msgstr "" +msgstr "Покупатель" #: company/templates/company/company_base.html:108 msgid "Uses default currency" -msgstr "" +msgstr "Использовать валюту по умолчанию" #: company/templates/company/company_base.html:122 msgid "Phone" -msgstr "" +msgstr "Телефон" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" -msgstr "" +msgstr "Загрузить изображение" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" -msgstr "" +msgstr "Детали поставщиков" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" -msgstr "" +msgstr "Создать новую деталь поставщика" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" -msgstr "" +msgstr "Новая деталь поставщика" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" -msgstr "" +msgstr "Настройки" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" -msgstr "" +msgstr "Заказать детали" + +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 +msgid "Delete parts" +msgstr "Удалить детали" #: company/templates/company/detail.html:42 #: company/templates/company/detail.html:89 -msgid "Delete parts" -msgstr "" - -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 msgid "Delete Parts" -msgstr "" +msgstr "Удалить детали" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" -msgstr "" +msgstr "Детали производителей" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" -msgstr "" +msgstr "Создать новую деталь производителя" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" -msgstr "" +msgstr "Новая деталь производителя" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" -msgstr "" +msgstr "Склад поставщика" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" -msgstr "" +msgstr "Заказы на закупку" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" -msgstr "" +msgstr "Создать новый заказ на закупку" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" -msgstr "" +msgstr "Новый заказ на закупку" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" -msgstr "" +msgstr "Заказы на продажу" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" -msgstr "" +msgstr "Создать новый заказ на продажу" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" -msgstr "" +msgstr "Новый заказ на продажу" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" -msgstr "" +msgstr "Заметки о компании" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 -msgid "Delete Supplier Parts?" -msgstr "" - -#: company/templates/company/detail.html:381 +#: company/templates/company/detail.html:375 #: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: part/templates/part/detail.html:451 +msgid "Delete Supplier Parts?" +msgstr "Удалить деталь поставщика?" + +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "Все выбранные детали поставщика будут удалены" #: company/templates/company/index.html:8 msgid "Supplier List" -msgstr "" +msgstr "Список поставщиков" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" -msgstr "" +msgstr "Производители" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" -msgstr "" +msgstr "Поставщики" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" -msgstr "" +msgstr "Удалить деталь поставщика" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" -msgstr "" +msgstr "Удалить" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" -msgstr "" +msgstr "Параметры" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" -msgstr "" +msgstr "Новый параметр" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" -msgstr "" +msgstr "Удалить параметры" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" -msgstr "" +msgstr "Добавить параметр" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" -msgstr "" +msgstr "Удалить параметры" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" -msgstr "" +msgstr "Произведенные детали" #: company/templates/company/sidebar.html:10 msgid "Supplied Parts" -msgstr "" +msgstr "Поставленные детали" #: company/templates/company/sidebar.html:16 msgid "Supplied Stock Items" @@ -2969,21 +3082,21 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" -msgstr "" +msgstr "Деталь поставщика" #: company/templates/company/supplier_part.html:38 #: templates/js/translated/company.js:863 msgid "Edit supplier part" -msgstr "" +msgstr "Редактировать деталь поставщика" #: company/templates/company/supplier_part.html:42 #: templates/js/translated/company.js:864 msgid "Delete supplier part" -msgstr "" +msgstr "Удалить деталь поставщика" #: company/templates/company/supplier_part.html:138 #: company/templates/company/supplier_part_navbar.html:12 @@ -2991,15 +3104,15 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" -msgstr "" +msgstr "Создать единицу хранения" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" -msgstr "" +msgstr "Новая единица хранения" #: company/templates/company/supplier_part.html:155 #: company/templates/company/supplier_part_navbar.html:19 @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" -msgstr "" +msgstr "Информация о цене" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3044,24 +3159,24 @@ msgstr "" #: company/templates/company/supplier_part.html:273 msgid "Last updated" -msgstr "" +msgstr "Последнее обновление" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" -msgstr "" +msgstr "Склад" #: company/templates/company/supplier_part_navbar.html:22 msgid "Orders" -msgstr "" +msgstr "Заказы" #: company/templates/company/supplier_part_navbar.html:26 #: company/templates/company/supplier_part_sidebar.html:9 @@ -3069,63 +3184,66 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" -msgstr "" +msgstr "Детали на складе" #: company/views.py:50 msgid "New Supplier" -msgstr "" +msgstr "Новый поставщик" #: company/views.py:56 msgid "New Manufacturer" -msgstr "" +msgstr "Новый производитель" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" -msgstr "" +msgstr "Покупатели" #: company/views.py:62 msgid "New Customer" -msgstr "" +msgstr "Новый покупатель" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" -msgstr "" +msgstr "Компании" #: company/views.py:70 msgid "New Company" -msgstr "" +msgstr "Новая компания" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" -msgstr "" +msgstr "Скачать изображение" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3155,7 +3273,7 @@ msgstr "" #: label/models.py:140 msgid "Width [mm]" -msgstr "" +msgstr "Ширина [мм]" #: label/models.py:141 msgid "Label width, specified in mm" @@ -3163,7 +3281,7 @@ msgstr "" #: label/models.py:147 msgid "Height [mm]" -msgstr "" +msgstr "Высота [мм]" #: label/models.py:148 msgid "Label height, specified in mm" @@ -3184,7 +3302,7 @@ msgstr "" #: label/models.py:259 label/models.py:319 label/models.py:366 #: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Фильтры" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" @@ -3205,7 +3323,7 @@ msgstr "" #: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47 #: order/templates/order/sales_order_base.html:60 msgid "Cancel order" -msgstr "" +msgstr "Отменить заказ" #: order/models.py:125 msgid "Order description" @@ -3237,7 +3355,7 @@ msgstr "" #: order/models.py:228 msgid "Company from which the items are being ordered" -msgstr "" +msgstr "Компания, в которой детали заказываются" #: order/models.py:231 order/templates/order/order_base.html:118 #: templates/js/translated/order.js:967 @@ -3282,7 +3400,7 @@ msgstr "" #: order/models.py:575 msgid "Company to which the items are being sold" -msgstr "" +msgstr "Компания, которой детали продаются" #: order/models.py:581 msgid "Customer Reference " @@ -3349,11 +3467,11 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" -msgstr "" +msgstr "Заказ на закупку" #: order/models.py:913 msgid "Supplier part" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,11 +3488,11 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" -msgstr "" +msgstr "Закупочная цена" #: order/models.py:929 msgid "Unit purchase price" @@ -3385,9 +3503,9 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" -msgstr "" +msgstr "Цена продажи" #: order/models.py:993 msgid "Unit sale price" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3492,7 +3610,7 @@ msgstr "" #: order/serializers.py:187 msgid "Purchase price currency" -msgstr "" +msgstr "Курс покупки валюты" #: order/serializers.py:238 order/serializers.py:883 msgid "Line Item" @@ -3508,7 +3626,7 @@ msgstr "" #: order/serializers.py:273 templates/js/translated/order.js:574 msgid "Enter batch code for incoming stock items" -msgstr "" +msgstr "Введите код партии для поступающих единиц хранения" #: order/serializers.py:281 templates/js/translated/order.js:585 msgid "Enter serial numbers for incoming stock items" @@ -3528,7 +3646,7 @@ msgstr "" #: order/serializers.py:331 msgid "An integer quantity must be provided for trackable parts" -msgstr "" +msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" #: order/serializers.py:371 msgid "Line items must be provided" @@ -3544,7 +3662,7 @@ msgstr "" #: order/serializers.py:672 msgid "Sale price currency" -msgstr "" +msgstr "Курс продажи валюты" #: order/serializers.py:742 msgid "No shipment details provided" @@ -3595,7 +3713,7 @@ msgstr "" #: order/templates/order/order_base.html:41 #: order/templates/order/sales_order_base.html:54 msgid "Order actions" -msgstr "" +msgstr "Действия с заказом" #: order/templates/order/order_base.html:45 #: order/templates/order/sales_order_base.html:58 @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3649,11 +3767,11 @@ msgstr "" #: order/templates/order/order_base.html:219 msgid "Edit Purchase Order" -msgstr "" +msgstr "Редактировать заказ на закупку" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "Отмена этого заказа означает, что заказ и его элементы нельзя будет редактировать." #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" @@ -3675,7 +3793,7 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" -msgstr "" +msgstr "В представленных данных присутствуют ошибки" #: order/templates/order/order_wizard/match_parts.html:21 #: part/templates/part/import_wizard/match_fields.html:29 @@ -3688,11 +3806,11 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" -msgstr "" +msgstr "Строка" #: order/templates/order/order_wizard/match_parts.html:29 msgid "Select Supplier Part" -msgstr "" +msgstr "Выберите деталь поставщика" #: order/templates/order/order_wizard/match_parts.html:52 #: part/templates/part/import_wizard/ajax_match_fields.html:64 @@ -3700,16 +3818,16 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" -msgstr "" +msgstr "Удалить строку" #: order/templates/order/order_wizard/po_upload.html:8 msgid "Return to Orders" -msgstr "" +msgstr "Вернуться к заказам" #: order/templates/order/order_wizard/po_upload.html:17 msgid "Upload File for Purchase Order" @@ -3718,10 +3836,10 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" -msgstr "" +msgstr "Шаг %(step)s из %(count)s" #: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." @@ -3729,11 +3847,11 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" -msgstr "" +msgstr "Шаг 1 из 2 - Выберите поставщиков деталей" #: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" -msgstr "" +msgstr "Выбрать поставщиков" #: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" @@ -3741,25 +3859,25 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" -msgstr "" +msgstr "Выбрать поставщика" #: order/templates/order/order_wizard/select_parts.html:57 msgid "No price" -msgstr "" +msgstr "Нет цены" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format msgid "Select a supplier for %(name)s" -msgstr "" +msgstr "Выберите поставщика для %(name)s" #: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" -msgstr "" +msgstr "Удалить деталь" #: order/templates/order/order_wizard/select_pos.html:8 msgid "Step 2 of 2 - Select Purchase Orders" -msgstr "" +msgstr "Шаг 2 из 2 - Выберите заказы на закупку" #: order/templates/order/order_wizard/select_pos.html:12 msgid "Select existing purchase orders, or create new orders." @@ -3773,7 +3891,7 @@ msgstr "" #: order/templates/order/order_wizard/select_pos.html:32 msgid "Select Purchase Order" -msgstr "" +msgstr "Выберите заказ на закупку" #: order/templates/order/order_wizard/select_pos.html:45 #, python-format @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3860,33 +3978,33 @@ msgstr "" #: order/templates/order/sales_order_cancel.html:8 #: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" -msgstr "" +msgstr "Предупреждение" #: order/templates/order/sales_order_cancel.html:9 msgid "Cancelling this order means that the order will no longer be editable." -msgstr "" +msgstr "Отмена этого заказа означает, что заказ нельзя будет редактировать." -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" -msgstr "" +msgstr "Действия" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" #: order/views.py:99 msgid "Cancel Order" -msgstr "" +msgstr "Отменить заказ" #: order/views.py:108 order/views.py:134 msgid "Confirm order cancellation" @@ -3898,7 +4016,7 @@ msgstr "" #: order/views.py:125 msgid "Cancel sales order" -msgstr "" +msgstr "Отменить заказ на продажу" #: order/views.py:151 msgid "Issue Order" @@ -3931,15 +4049,15 @@ msgstr "" #: order/views.py:747 #, python-brace-format msgid "Ordered {n} parts" -msgstr "" +msgstr "Заказано {n} деталей" #: order/views.py:858 msgid "Sales order not found" -msgstr "" +msgstr "Заказ на продажу не найден" #: order/views.py:864 msgid "Price not found" -msgstr "" +msgstr "Цена не найдена" #: order/views.py:867 #, python-brace-format @@ -3951,71 +4069,73 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" -msgstr "" +msgstr "Место хранения по умолчанию" #: part/bom.py:126 templates/email/low_stock_notification.html:17 msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" -msgstr "" +msgstr "Доступный запас" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" #: part/forms.py:84 msgid "Select part category" -msgstr "" +msgstr "Выберите категорию" #: part/forms.py:121 msgid "Add parameter template to same level categories" @@ -4031,24 +4151,24 @@ msgstr "" #: part/models.py:113 msgid "Default location for parts in this category" -msgstr "" +msgstr "Место хранения по умолчанию для деталей этой категории" #: part/models.py:116 msgid "Default keywords" -msgstr "" +msgstr "Ключевые слова по умолчанию" #: part/models.py:116 msgid "Default keywords for parts in this category" -msgstr "" +msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "Категория детали" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,11 +4177,12 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" -msgstr "" +msgstr "Детали" #: part/models.py:460 msgid "Invalid choice for parent part" @@ -4084,475 +4205,485 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" -msgstr "" +msgstr "Наименование детали" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" -msgstr "" +msgstr "Шаблон" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" -msgstr "" +msgstr "Эта деталь является шаблоном для других деталей?" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" -msgstr "" +msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" -msgstr "" +msgstr "Разновидность" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" -msgstr "" +msgstr "Описание детали" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" -msgstr "" +msgstr "Ключевые слова" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" -msgstr "" +msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" -msgstr "" +msgstr "Категория" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" -msgstr "" +msgstr "Категория" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" -msgstr "" +msgstr "Внутренний код детали" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" -msgstr "" +msgstr "Версия детали" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" -msgstr "" +msgstr "Версия" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" -msgstr "" +msgstr "Где обычно хранится эта деталь?" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" -msgstr "" +msgstr "Минимальный запас" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" -msgstr "" +msgstr "Минимально допустимый складской запас" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" -msgstr "" +msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" -msgstr "" - -#: part/models.py:972 -msgid "Does this part have tracking for unique items?" -msgstr "" +msgstr "Может ли эта деталь использоваться для создания других деталей?" #: part/models.py:977 -msgid "Can this part be purchased from external suppliers?" -msgstr "" +msgid "Does this part have tracking for unique items?" +msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" #: part/models.py:982 -msgid "Can this part be sold to customers?" -msgstr "" +msgid "Can this part be purchased from external suppliers?" +msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" #: part/models.py:987 -msgid "Is this part active?" -msgstr "" +msgid "Can this part be sold to customers?" +msgstr "Может ли эта деталь быть продана покупателям?" #: part/models.py:992 -msgid "Is this a virtual part, such as a software product or license?" -msgstr "" +msgid "Is this part active?" +msgstr "Эта деталь актуальна?" #: part/models.py:997 -msgid "Part notes - supports Markdown formatting" -msgstr "" +msgid "Is this a virtual part, such as a software product or license?" +msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:1000 +#: part/models.py:1002 +msgid "Part notes - supports Markdown formatting" +msgstr "Заметки о детали (поддерживается разметка Markdown)" + +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" -msgstr "" +msgstr "Родительская деталь" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" -msgstr "" +msgstr "Шаблон параметра" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" -msgstr "" +msgstr "Артикул или наименование детали" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" -msgstr "" +msgstr "Артикул" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" -msgstr "" +msgstr "Наименование детали" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" -msgstr "" +msgstr "IPN" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" -msgstr "" +msgstr "Значение IPN" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" -msgstr "" +msgstr "Выберите родительскую деталь" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" -msgstr "" +msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" -msgstr "" +msgstr "Разрешить разновидности" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" -msgstr "" +msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" -msgstr "" +msgstr "Часть 1" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" -msgstr "" +msgstr "Часть 2" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "Валюта покупки этой единицы хранения" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" -msgstr "" +msgstr "Подходящая деталь не найдена" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." -msgstr "" +msgstr "У вас нет прав редактировать BOM." #: part/templates/part/bom.html:15 #, python-format @@ -4569,82 +4700,82 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" -msgstr "" +msgstr "Действия с BOM" #: part/templates/part/bom.html:34 msgid "Delete Items" -msgstr "" +msgstr "Удалить элементы" #: part/templates/part/category.html:28 part/templates/part/category.html:32 msgid "You are subscribed to notifications for this category" -msgstr "" +msgstr "Вы подписаны на уведомления для данной категории" #: part/templates/part/category.html:36 msgid "Subscribe to notifications for this category" -msgstr "" +msgstr "Включить уведомления для данной категории" #: part/templates/part/category.html:42 msgid "Category Actions" -msgstr "" +msgstr "Действия с категорией" #: part/templates/part/category.html:47 msgid "Edit category" -msgstr "" +msgstr "Редактировать категорию" #: part/templates/part/category.html:48 msgid "Edit Category" -msgstr "" +msgstr "Редактировать категорию" #: part/templates/part/category.html:52 msgid "Delete category" -msgstr "" +msgstr "Удалить категорию" #: part/templates/part/category.html:53 msgid "Delete Category" -msgstr "" +msgstr "Удалить категорию" #: part/templates/part/category.html:61 msgid "Create new part category" -msgstr "" +msgstr "Создать новую категорию деталей" #: part/templates/part/category.html:62 msgid "New Category" -msgstr "" +msgstr "Новая категория" #: part/templates/part/category.html:80 part/templates/part/category.html:93 msgid "Category Path" -msgstr "" +msgstr "Путь к категории" #: part/templates/part/category.html:94 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" -msgstr "" +msgstr "Подкатегории" #: part/templates/part/category.html:119 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "Детали (включая подкатегории)" #: part/templates/part/category.html:157 msgid "Create new part" -msgstr "" +msgstr "Создать новую деталь" #: part/templates/part/category.html:158 templates/js/translated/bom.js:365 msgid "New Part" -msgstr "" +msgstr "Новая деталь" #: part/templates/part/category.html:172 msgid "Set category" -msgstr "" +msgstr "Укажите категорию" #: part/templates/part/category.html:172 msgid "Set Category" -msgstr "" +msgstr "Укажите категорию" #: part/templates/part/category.html:176 msgid "Print Labels" @@ -4658,34 +4789,34 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" -msgstr "" - -#: part/templates/part/category.html:285 -msgid "Create Part Category" -msgstr "" - -#: part/templates/part/category.html:305 -msgid "Create Part" -msgstr "" - -#: part/templates/part/category.html:308 -msgid "Create another part after this one" -msgstr "" +msgstr "Параметры детали" #: part/templates/part/category.html:309 +msgid "Create Part Category" +msgstr "Создать категорию деталей" + +#: part/templates/part/category.html:329 +msgid "Create Part" +msgstr "Создать деталь" + +#: part/templates/part/category.html:332 +msgid "Create another part after this one" +msgstr "Создать ещё одну деталь после этой" + +#: part/templates/part/category.html:333 msgid "Part created successfully" -msgstr "" +msgstr "Деталь создана успешно" #: part/templates/part/category_delete.html:7 msgid "Are you sure you want to delete this part category?" -msgstr "" +msgstr "Вы уверены, что хотите удалить эту категорию?" #: part/templates/part/category_delete.html:12 #, python-format msgid "This category contains %(n)s child categories" -msgstr "" +msgstr "Эта категория содержит %(n)s дочерних категорий" #: part/templates/part/category_delete.html:14 #, python-format @@ -4699,7 +4830,7 @@ msgstr "" #: part/templates/part/category_delete.html:23 #, python-format msgid "This category contains %(n)s parts" -msgstr "" +msgstr "Эта категория содержит %(n)s деталей" #: part/templates/part/category_delete.html:25 #, python-format @@ -4712,11 +4843,11 @@ msgstr "" #: part/templates/part/category_sidebar.html:13 msgid "Import Parts" -msgstr "" +msgstr "Импортировать детали" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" -msgstr "" +msgstr "Дублировать деталь" #: part/templates/part/copy_part.html:10 #, python-format @@ -4726,7 +4857,7 @@ msgstr "" #: part/templates/part/copy_part.html:14 #: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" -msgstr "" +msgstr "Возможные соответствующие детали" #: part/templates/part/copy_part.html:15 #: part/templates/part/create_part.html:12 @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" -msgstr "" +msgstr "Наличие на складе" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" -msgstr "" +msgstr "Разновидности детали" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" -msgstr "" +msgstr "Создать новую разновидность" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" -msgstr "" +msgstr "Новая разновидность" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" -msgstr "" +msgstr "Спецификация" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" -msgstr "" +msgstr "Экспорт" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" -msgstr "" +msgstr "Экспорт BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" -msgstr "" +msgstr "Сборки" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" -msgstr "" +msgstr "Поставщики" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4931,250 +5062,233 @@ msgstr "" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "Список деталей" #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31 msgid "You are subscribed to notifications for this part" -msgstr "" +msgstr "Вы подписаны на уведомления для данной детали" #: part/templates/part/part_base.html:35 msgid "Subscribe to notifications for this part" -msgstr "" +msgstr "Включить уведомления для данной детали" #: part/templates/part/part_base.html:43 #: stock/templates/stock/item_base.html:35 #: stock/templates/stock/location.html:34 msgid "Barcode actions" -msgstr "" +msgstr "Действия со штрих-кодом" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" -msgstr "" +msgstr "Действия со складом" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" -msgstr "" +msgstr "Действия с деталью" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" -msgstr "" - -#: part/templates/part/part_base.html:112 -msgid "Part is a template part (variants can be made from this part)" -msgstr "" +msgstr "Удалить деталь" #: part/templates/part/part_base.html:116 -msgid "Part can be assembled from other parts" -msgstr "" +msgid "Part is a template part (variants can be made from this part)" +msgstr "Деталь является шаблоном (из неё можно создавать разновидности)" #: part/templates/part/part_base.html:120 -msgid "Part can be used in assemblies" -msgstr "" +msgid "Part can be assembled from other parts" +msgstr "Деталь может быть собрана из других деталей" #: part/templates/part/part_base.html:124 +msgid "Part can be used in assemblies" +msgstr "Деталь может быть использована в сборках" + +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" -msgstr "" +msgstr "Деталь может быть продана покупателям" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" -msgstr "" +msgstr "Эта деталь является разновидностью %(link)s" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" -msgstr "" +msgstr "На складе" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" -msgstr "" +msgstr "Минимальный складской запас" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" -msgstr "" +msgstr "Подходящие изображения не найдены" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" -msgstr "" +msgstr "Внутренняя цена" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" -msgstr "" +msgstr "Разновидности" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" -msgstr "" +msgstr "Сборки" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" -msgstr "" +msgstr "Показать закупочную цену" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5301,11 +5414,11 @@ msgstr "" #: part/templates/part/upload_bom.html:8 msgid "Return to BOM" -msgstr "" +msgstr "Вернуться в BOM" #: part/templates/part/upload_bom.html:13 msgid "Upload Bill of Materials" -msgstr "" +msgstr "Загрузить спецификацию" #: part/templates/part/upload_bom.html:19 msgid "BOM upload requirements" @@ -5314,7 +5427,7 @@ msgstr "" #: part/templates/part/upload_bom.html:23 #: part/templates/part/upload_bom.html:90 msgid "Upload BOM File" -msgstr "" +msgstr "Загрузить BOM" #: part/templates/part/upload_bom.html:29 msgid "Submit BOM Data" @@ -5322,7 +5435,7 @@ msgstr "" #: part/templates/part/upload_bom.html:37 msgid "Requirements for BOM upload" -msgstr "" +msgstr "Требования для загрузки BOM" #: part/templates/part/upload_bom.html:39 msgid "The BOM file must contain the required named columns as provided in the " @@ -5334,125 +5447,122 @@ msgstr "" #: part/templates/part/upload_bom.html:40 msgid "Each part must already exist in the database" -msgstr "" +msgstr "Каждая деталь уже должна быть в базе данных" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" -msgstr "" +msgstr "Создать новую разновидность детали" #: part/templates/part/variant_part.html:10 #, python-format msgid "Create a new variant of template '%(full_name)s'." -msgstr "" +msgstr "Создать новую разновидность из шаблона '%(full_name)s'." -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" +msgstr "Неизвестная база данных" + +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" msgstr "" -#: part/views.py:88 +#: part/views.py:86 msgid "Set Part Category" -msgstr "" +msgstr "Укажите категорию" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" -msgstr "" +msgstr "Изображение детали не найдено" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" -msgstr "" +msgstr "Деталь была удалена" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" -msgstr "" +msgstr "Редактировать категорию" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" -msgstr "" +msgstr "Удалить категорию" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" -msgstr "" +msgstr "Категория удалена" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 -msgid "No author found" +#: plugin/events.py:225 +msgid "Label printing failed" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:146 +msgid "No author found" +msgstr "Автор не найден" + +#: plugin/integration.py:160 msgid "No date found" -msgstr "" +msgstr "Дата не найдена" #: plugin/models.py:26 msgid "Plugin Configuration" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" -msgstr "" +msgstr "Исходная ссылка" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5553,11 +5663,11 @@ msgstr "" #: report/models.py:182 msgid "Template name" -msgstr "" +msgstr "Название шаблона" #: report/models.py:188 msgid "Report template file" -msgstr "" +msgstr "Файл шаблона отчёта" #: report/models.py:195 msgid "Report template description" @@ -5644,33 +5754,33 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" -msgstr "" +msgstr "Серийный номер" #: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" -msgstr "" +msgstr "Родительская единица хранения" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" -msgstr "" +msgstr "Базовая деталь" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" -msgstr "" +msgstr "Место хранения" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" -msgstr "" +msgstr "Код партии для этой единицы хранения" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" -msgstr "" +msgstr "Исходная сборка" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" -msgstr "" +msgstr "Удалить при обнулении" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" -msgstr "" +msgstr "Удалить эту единицу хранения при обнулении складского запаса" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" -msgstr "" +msgstr "Заметки о единице хранения" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 -msgid "Part is not set as trackable" +#: stock/models.py:782 +msgid "Converted to part" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1302 +msgid "Part is not set as trackable" +msgstr "Деталь не является отслеживаемой" + +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,9 +6115,9 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" -msgstr "" +msgstr "Серийные номера уже существуют" #: stock/serializers.py:405 msgid "Select stock item to install" @@ -6019,7 +6129,7 @@ msgstr "" #: stock/serializers.py:428 msgid "Selected part is not in the Bill of Materials" -msgstr "" +msgstr "Выбранная деталь отсутствует в спецификации" #: stock/serializers.py:646 msgid "Part must be salable" @@ -6039,7 +6149,7 @@ msgstr "" #: stock/serializers.py:690 msgid "Selected company is not a customer" -msgstr "" +msgstr "Выбранная компания не является покупателем" #: stock/serializers.py:698 msgid "Stock assignment notes" @@ -6081,28 +6191,28 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" #: stock/templates/stock/item.html:74 msgid "Child Stock Items" -msgstr "" +msgstr "Дочерние единицы хранения" #: stock/templates/stock/item.html:82 msgid "This stock item does not have any child items" -msgstr "" +msgstr "Эта единица хранения не имеет дочерних элементов" #: stock/templates/stock/item.html:91 #: stock/templates/stock/stock_sidebar.html:12 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" -msgstr "" +msgstr "Установленные единицы хранения" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" -msgstr "" +msgstr "Установить единицу хранения" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" -msgstr "" +msgstr "Удалить единицу хранения" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" -msgstr "" +msgstr "Установить единицу хранения" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 -msgid "Convert to variant" -msgstr "" - -#: stock/templates/stock/item_base.html:113 -msgid "Duplicate stock item" -msgstr "" - #: stock/templates/stock/item_base.html:115 -msgid "Edit stock item" -msgstr "" +msgid "Convert to variant" +msgstr "Преобразовать в разновидность" #: stock/templates/stock/item_base.html:118 -msgid "Delete stock item" -msgstr "" +msgid "Duplicate stock item" +msgstr "Дублировать единицу хранения" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:120 +msgid "Edit stock item" +msgstr "Редактировать единицу хранения" + +#: stock/templates/stock/item_base.html:123 +msgid "Delete stock item" +msgstr "Удалить единицу хранения" + +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" -msgstr "" +msgstr "Родительский элемент" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,97 +6444,90 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 -msgid "Location actions" -msgstr "" - #: stock/templates/stock/location.html:68 -msgid "Edit location" -msgstr "" +msgid "Location actions" +msgstr "Действия с местом хранения" #: stock/templates/stock/location.html:70 +msgid "Edit location" +msgstr "Редактировать место хранения" + +#: stock/templates/stock/location.html:72 msgid "Delete location" -msgstr "" +msgstr "Удалить место хранения" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" -msgstr "" +msgstr "Создать новое место хранения" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" -msgstr "" +msgstr "Новое место хранения" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" -msgstr "" +msgstr "Ответственный за место хранения" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" -msgstr "" +msgstr "Места хранения" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" -msgstr "" - -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" +msgstr "Места хранения" #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "Вы уверены, что хотите удалить место хранения?" #: stock/templates/stock/location_delete.html:13 #, python-format msgid "This location contains %(n)s child locations" -msgstr "" +msgstr "Это место хранения содержит %(n)s дочерних мест хранения" #: stock/templates/stock/location_delete.html:15 #, python-format msgid "If this location is deleted, these child locations will be moved to %(location)s" -msgstr "" +msgstr "Если удалить это место хранения, дочерние места хранения будут перемещены в %(location)s" #: stock/templates/stock/location_delete.html:17 msgid "If this location is deleted, these child locations will be moved to the top level stock location" -msgstr "" +msgstr "Если удалить это место хранения, дочерние места хранения будут перемещены в место хранения верхнего уровня" #: stock/templates/stock/location_delete.html:25 #, python-format msgid "This location contains %(n)s stock items" -msgstr "" +msgstr "В этом месте хранения находится %(n)s единиц хранения" #: stock/templates/stock/location_delete.html:27 #, python-format msgid "If this location is deleted, these stock items will be moved to %(location)s" -msgstr "" +msgstr "Если удалить это место хранения, единицы хранения будут перемещены в %(location)s" #: stock/templates/stock/location_delete.html:29 msgid "If this location is deleted, these stock items will be moved to the top level stock location" -msgstr "" +msgstr "Если удалить это место хранения, единицы хранения будут перемещены в место хранения верхнего уровня" #: stock/templates/stock/stock_app_base.html:16 msgid "Loading..." @@ -6436,7 +6539,7 @@ msgstr "" #: stock/templates/stock/stock_sidebar.html:8 msgid "Allocations" -msgstr "" +msgstr "Места хранения" #: stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" -msgstr "" +msgstr "Доступ запрещён" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." -msgstr "" +msgstr "У вас нет прав для просмотра этой страницы." -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" -msgstr "" +msgstr "Страница не найдена" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" -msgstr "" +msgstr "Внутренняя ошибка сервера" #: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6609,11 +6713,11 @@ msgstr "" #: templates/InvenTree/index.html:108 msgid "Latest Parts" -msgstr "" +msgstr "Последние детали" #: templates/InvenTree/index.html:119 msgid "BOM Waiting Validation" -msgstr "" +msgstr "BOM для проверки" #: templates/InvenTree/index.html:145 msgid "Recently Updated" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,29 +6763,93 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "Обновить историю уведомлений" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "Идентификатор" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "Настройки штрих-кода" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" -msgstr "" +msgstr "Настройки заказа на сборку" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" -msgstr "" +msgstr "Настройки категории" #: templates/InvenTree/settings/currencies.html:8 msgid "Currency Settings" -msgstr "" +msgstr "Настройки валюты" #: templates/InvenTree/settings/currencies.html:19 msgid "Base Currency" -msgstr "" +msgstr "Базовая валюта" #: templates/InvenTree/settings/currencies.html:24 msgid "Exchange Rates" @@ -6697,25 +6869,25 @@ msgstr "" #: templates/InvenTree/settings/global.html:9 msgid "Server Settings" -msgstr "" +msgstr "Настройки сервера" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" -msgstr "" +msgstr "Настройки входа" #: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5 msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" -msgstr "" +msgstr "Настройки" #: templates/InvenTree/settings/mixins/urls.html:5 msgid "URLs" -msgstr "" +msgstr "Ссылки" #: templates/InvenTree/settings/mixins/urls.html:8 #, python-format @@ -6724,11 +6896,11 @@ msgstr "" #: templates/InvenTree/settings/mixins/urls.html:23 msgid "Open in new tab" -msgstr "" +msgstr "Открыть в новой вкладке" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "Настройки деталей" #: templates/InvenTree/settings/part.html:44 msgid "Part Import" @@ -6740,56 +6912,56 @@ msgstr "" #: templates/InvenTree/settings/part.html:62 msgid "Part Parameter Templates" -msgstr "" +msgstr "Шаблон параметра детали" #: templates/InvenTree/settings/plugin.html:10 msgid "Plugin Settings" -msgstr "" +msgstr "Настройки плагинов" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6859,12 +7031,12 @@ msgstr "" #: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" -msgstr "" +msgstr "Настройки заказа на закупку" #: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 msgid "Report Settings" -msgstr "" +msgstr "Настройки отчётов" #: templates/InvenTree/settings/setting.html:37 msgid "No value set" @@ -6872,98 +7044,94 @@ msgstr "" #: templates/InvenTree/settings/setting.html:42 msgid "Edit setting" -msgstr "" +msgstr "Изменить настройки" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" -msgstr "" +msgstr "Изменить настройки плагинов" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" -msgstr "" +msgstr "Изменить глобальные настройки" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" -msgstr "" +msgstr "Изменить настройки пользователя" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" -msgstr "" - -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" +msgstr "Шаблоны параметров категории не найдены" #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "Редактировать шаблон" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" -msgstr "" +msgstr "Удалить шаблон" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" -msgstr "" - -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" +msgstr "Шаблоны параметров детали не найдены" #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "Настройки пользователя" #: templates/InvenTree/settings/sidebar.html:9 #: templates/InvenTree/settings/user.html:12 msgid "Account Settings" -msgstr "" +msgstr "Настройки учётной записи" #: templates/InvenTree/settings/sidebar.html:11 #: templates/InvenTree/settings/user_display.html:9 msgid "Display Settings" -msgstr "" +msgstr "Настройки отображения" #: templates/InvenTree/settings/sidebar.html:13 msgid "Home Page" -msgstr "" +msgstr "Главная страница" #: templates/InvenTree/settings/sidebar.html:15 #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" +msgstr "Настройки поиска" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" -msgstr "" +msgstr "Глобальные настройки" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "Настройки заказов на продажу" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" -msgstr "" +msgstr "Настройки склада" #: templates/InvenTree/settings/user.html:18 #: templates/account/password_reset_from_key.html:4 @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -6990,7 +7159,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:54 msgid "The following email addresses are associated with your account:" -msgstr "" +msgstr "Следующие адреса электронной почты связаны с вашей учётной записью:" #: templates/InvenTree/settings/user.html:75 msgid "Verified" @@ -7020,19 +7189,19 @@ msgstr "" #: templates/InvenTree/settings/user.html:95 #: templates/InvenTree/settings/user.html:201 msgid "Warning:" -msgstr "" +msgstr "Предупреждение:" #: templates/InvenTree/settings/user.html:96 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." -msgstr "" +msgstr "Вы не указали ни одного адреса электронной почты. Вы должны добавить адрес электронной почты, чтобы получать уведомления, сбрасывать пароль и т.п." #: templates/InvenTree/settings/user.html:104 msgid "Add Email Address" -msgstr "" +msgstr "Добавить адрес электронной почты" #: templates/InvenTree/settings/user.html:109 msgid "Add Email" -msgstr "" +msgstr "Добавить EMail" #: templates/InvenTree/settings/user.html:117 msgid "Social Accounts" @@ -7126,11 +7295,11 @@ msgstr "" #: templates/InvenTree/settings/user.html:266 msgid "Do you really want to remove the selected email address?" -msgstr "" +msgstr "Вы действительно хотите удалить выбранный адрес электронной почты?" #: templates/InvenTree/settings/user_display.html:27 msgid "Theme Settings" -msgstr "" +msgstr "Настройки темы" #: templates/InvenTree/settings/user_display.html:37 msgid "Select theme" @@ -7142,7 +7311,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:56 msgid "Language Settings" -msgstr "" +msgstr "Настройки языка" #: templates/InvenTree/settings/user_display.html:65 msgid "Select language" @@ -7183,16 +7352,20 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "Настройки главной страницы" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "Настройки меток" + +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "Настройки уведомлений" #: templates/about.html:10 msgid "InvenTree Version Information" @@ -7241,7 +7414,7 @@ msgstr "" #: templates/about.html:73 msgid "View Code on GitHub" -msgstr "" +msgstr "Посмотреть код на GitHub" #: templates/about.html:78 msgid "Credits" @@ -7266,49 +7439,41 @@ msgstr "" #: templates/account/email_confirm.html:6 #: templates/account/email_confirm.html:10 msgid "Confirm Email Address" -msgstr "" +msgstr "Подтверждение адреса электронной почты" #: templates/account/email_confirm.html:16 #, python-format msgid "Please confirm that %(email)s is an email address for user %(user_display)s." -msgstr "" +msgstr "Пожалуйста, подтвердите, что %(email)s является адресом электронной почты пользователя %(user_display)s." #: templates/account/email_confirm.html:27 #, python-format msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." -msgstr "" +msgstr "Эта ссылка для подтверждения электронной почты устарела или является недействительной. Пожалуйста, отправьте новый запрос на подтверждение электронной почты." -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7323,7 +7488,7 @@ msgstr "" #: templates/account/logout.html:19 msgid "Back to Site" -msgstr "" +msgstr "Вернуться на сайт" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 @@ -7332,7 +7497,7 @@ msgstr "" #: templates/account/password_reset.html:18 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." -msgstr "" +msgstr "Забыли пароль? Введите адрес электронной почты ниже, и мы отправим вам письмо для сброса пароля." #: templates/account/password_reset.html:23 msgid "Reset My Password" @@ -7403,7 +7568,7 @@ msgstr "" #: templates/allauth_2fa/backup_tokens.html:31 #: templates/allauth_2fa/setup.html:40 msgid "Back to settings" -msgstr "" +msgstr "Вернуться к настройкам" #: templates/allauth_2fa/remove.html:6 msgid "Disable Two-Factor Authentication" @@ -7423,7 +7588,7 @@ msgstr "" #: templates/allauth_2fa/setup.html:10 msgid "Step 1" -msgstr "" +msgstr "Шаг 1" #: templates/allauth_2fa/setup.html:14 msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." @@ -7431,7 +7596,7 @@ msgstr "" #: templates/allauth_2fa/setup.html:23 msgid "Step 2" -msgstr "" +msgstr "Шаг 2" #: templates/allauth_2fa/setup.html:27 msgid "Input a token generated by the app:" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7494,16 +7660,7 @@ msgstr "" #: templates/email/build_order_required_stock.html:38 #: templates/email/low_stock_notification.html:31 msgid "You are receiving this email because you are subscribed to notifications for this part " -msgstr "" - -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" +msgstr "Вы получили это письмо, потому что вы подписаны на оповещения об этой детали " #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" @@ -7511,7 +7668,7 @@ msgstr "" #: templates/email/low_stock_notification.html:19 msgid "Minimum Quantity" -msgstr "" +msgstr "Минимальное количество" #: templates/image_download.html:8 msgid "Specify URL for downloading image" @@ -7523,79 +7680,79 @@ msgstr "" #: templates/image_download.html:12 msgid "Remote server must be accessible" -msgstr "" +msgstr "Удалённый сервер должен быть доступен" #: templates/image_download.html:13 msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" -msgstr "" +msgstr "Ошибка 400: Некорректный запрос" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" -msgstr "" +msgstr "API-запрос вернул код ошибки 400" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" -msgstr "" +msgstr "Ошибка 401: Авторизация не выполнена" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" -msgstr "" +msgstr "Ошибка 403: Доступ запрещён" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" -msgstr "" +msgstr "У вас нет прав доступа к этой функции" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" -msgstr "" +msgstr "Ошибка 404: Ресурс не найден" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" -msgstr "" +msgstr "Ошибка 405: Метод не разрешён" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" -msgstr "" +msgstr "Ошибка 408: Таймаут" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" -msgstr "" +msgstr "Необработанная ошибка" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" -msgstr "" +msgstr "Код ошибки" #: templates/js/translated/attachment.js:78 msgid "No attachments found" -msgstr "" +msgstr "Вложение не найдено" #: templates/js/translated/attachment.js:100 msgid "Edit Attachment" @@ -7643,7 +7800,7 @@ msgstr "" #: templates/js/translated/barcode.js:92 msgid "Server error" -msgstr "" +msgstr "Ошибка сервера" #: templates/js/translated/barcode.js:113 msgid "Unknown response from server" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7730,7 +7886,7 @@ msgstr "" #: templates/js/translated/bom.js:249 msgid "Download BOM Template" -msgstr "" +msgstr "Скачать шаблон BOM" #: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286 #: templates/js/translated/order.js:429 templates/js/translated/tables.js:53 @@ -7814,77 +7970,94 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" -msgstr "" +msgstr "Редактировать элемент BOM" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" -msgstr "" +msgstr "Удалить элемент BOM" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" -msgstr "" +msgstr "Элементы BOM не найдены" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" -msgstr "" +msgstr "Вы уверены, что хотите удалить этот элемент BOM?" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" -msgstr "" +msgstr "Унаследовано от родительского BOM" #: templates/js/translated/build.js:86 msgid "Edit Build Order" -msgstr "" +msgstr "Редактировать заказ на сборку" #: templates/js/translated/build.js:120 msgid "Create Build Order" -msgstr "" +msgstr "Создать заказ на сборку" #: templates/js/translated/build.js:141 msgid "Build order is ready to be completed" @@ -7899,18 +8072,18 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" #: templates/js/translated/build.js:226 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "Спецификация содержит отслеживаемые детали" #: templates/js/translated/build.js:227 msgid "Build outputs must be generated individually" @@ -7918,7 +8091,7 @@ msgstr "" #: templates/js/translated/build.js:235 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "Отслеживаемые детали могут иметь серийные номера" #: templates/js/translated/build.js:236 msgid "Enter serial numbers to generate multiple single build outputs" @@ -7984,179 +8157,187 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Подтвердите выделение запасов" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" #: templates/js/translated/company.js:65 msgid "Add Manufacturer" -msgstr "" +msgstr "Добавить производителя" #: templates/js/translated/company.js:78 templates/js/translated/company.js:177 msgid "Add Manufacturer Part" -msgstr "" +msgstr "Добавить деталь производителя" #: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "Редактировать деталь производителя" #: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "Удалить деталь производителя" #: templates/js/translated/company.js:165 templates/js/translated/order.js:248 msgid "Add Supplier" -msgstr "" +msgstr "Добавить поставщика" #: templates/js/translated/company.js:193 msgid "Add Supplier Part" -msgstr "" +msgstr "Добавить деталь поставщика" #: templates/js/translated/company.js:208 msgid "Edit Supplier Part" -msgstr "" +msgstr "Редактировать деталь поставщика" #: templates/js/translated/company.js:218 msgid "Delete Supplier Part" -msgstr "" +msgstr "Удалить деталь поставщика" #: templates/js/translated/company.js:286 msgid "Add new Company" -msgstr "" +msgstr "Добавить новую компанию" #: templates/js/translated/company.js:363 msgid "Parts Supplied" @@ -8168,7 +8349,7 @@ msgstr "" #: templates/js/translated/company.js:387 msgid "No company information found" -msgstr "" +msgstr "Информация о компании не найдена" #: templates/js/translated/company.js:406 msgid "The following manufacturer parts will be deleted" @@ -8180,43 +8361,43 @@ msgstr "" #: templates/js/translated/company.js:480 msgid "No manufacturer parts found" -msgstr "" +msgstr "Информация о детали производителя не найдена" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" -msgstr "" +msgstr "Деталь-шаблон" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" -msgstr "" +msgstr "Параметры не найдены" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" -msgstr "" +msgstr "Редактировать параметр" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" -msgstr "" +msgstr "Удалить параметр" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" -msgstr "" +msgstr "Редактировать параметр" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" -msgstr "" +msgstr "Удалить параметр" #: templates/js/translated/company.js:737 msgid "No supplier parts found" -msgstr "" +msgstr "Информация о детали поставщика не найдена" #: templates/js/translated/filters.js:178 #: templates/js/translated/filters.js:441 @@ -8234,7 +8415,7 @@ msgstr "" #: templates/js/translated/filters.js:288 msgid "Download data" -msgstr "" +msgstr "Скачать данные" #: templates/js/translated/filters.js:291 msgid "Reload data" @@ -8259,19 +8440,19 @@ msgstr "" #: templates/js/translated/forms.js:353 msgid "Create operation not allowed" -msgstr "" +msgstr "Операция создания не разрешена" #: templates/js/translated/forms.js:368 msgid "Update operation not allowed" -msgstr "" +msgstr "Операция обновления не разрешена" #: templates/js/translated/forms.js:382 msgid "Delete operation not allowed" -msgstr "" +msgstr "Операция удаления не разрешена" #: templates/js/translated/forms.js:396 msgid "View operation not allowed" -msgstr "" +msgstr "Операция просмотра не разрешена" #: templates/js/translated/forms.js:627 msgid "Keep this form open" @@ -8284,13 +8465,13 @@ msgstr "" #: templates/js/translated/forms.js:1194 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" -msgstr "" +msgstr "Форма содержит ошибки" #: templates/js/translated/forms.js:1623 msgid "No results found" -msgstr "" +msgstr "Не найдено" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,74 +8491,86 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" -msgstr "" +msgstr "Метки не найдены" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" #: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 #: templates/js/translated/modals.js:610 msgid "Cancel" -msgstr "" +msgstr "Отменить" #: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119 #: templates/js/translated/modals.js:677 templates/js/translated/modals.js:985 #: templates/modals.html:28 templates/modals.html:51 msgid "Submit" -msgstr "" +msgstr "Подтвердить" #: templates/js/translated/modals.js:118 msgid "Form Title" @@ -8409,7 +8602,7 @@ msgstr "" #: templates/js/translated/modals.js:949 msgid "Error posting form data" -msgstr "" +msgstr "Ошибка отправки данных формы" #: templates/js/translated/modals.js:1046 msgid "JSON response missing form data" @@ -8417,51 +8610,67 @@ msgstr "" #: templates/js/translated/modals.js:1061 msgid "Error 400: Bad Request" -msgstr "" +msgstr "Ошибка 400: Некорректный запрос" #: templates/js/translated/modals.js:1062 msgid "Server returned error code 400" -msgstr "" +msgstr "Сервер вернул код ошибки 400" #: templates/js/translated/modals.js:1085 msgid "Error requesting form data" -msgstr "" +msgstr "Ошибка запроса данных формы" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" -msgstr "" +msgstr "Код компании" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" -msgstr "" +msgstr "Код склада" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" -msgstr "" +msgstr "Код места хранения" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" -msgstr "" +msgstr "Код сборки" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" -msgstr "" +msgstr "Код заказа" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" -msgstr "" +msgstr "Код категории" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" +msgstr "Код детали производителя" + +#: templates/js/translated/model_renderers.js:398 +msgid "Supplier Part ID" +msgstr "Код детали поставщика" + +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" msgstr "" -#: templates/js/translated/model_renderers.js:373 -msgid "Supplier Part ID" +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" msgstr "" #: templates/js/translated/order.js:75 @@ -8506,7 +8715,7 @@ msgstr "" #: templates/js/translated/order.js:541 templates/js/translated/order.js:640 msgid "Add batch code" -msgstr "" +msgstr "Добавить код партии" #: templates/js/translated/order.js:547 templates/js/translated/order.js:651 msgid "Add serial numbers" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,9 +8749,9 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" -msgstr "" +msgstr "Заказов на закупку не найдено" #: templates/js/translated/order.js:950 templates/js/translated/order.js:1426 msgid "Order is overdue" @@ -8569,20 +8778,20 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" #: templates/js/translated/order.js:1256 templates/js/translated/order.js:2376 msgid "Total Price" -msgstr "" +msgstr "Общая стоимость" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8600,7 +8809,7 @@ msgstr "" #: templates/js/translated/order.js:1402 msgid "No sales orders found" -msgstr "" +msgstr "Заказы на продажу не найдены" #: templates/js/translated/order.js:1440 msgid "Invalid Customer" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8705,23 +8914,23 @@ msgstr "" #: templates/js/translated/part.js:55 msgid "Part Attributes" -msgstr "" +msgstr "Атрибуты детали" #: templates/js/translated/part.js:59 msgid "Part Creation Options" -msgstr "" +msgstr "Настройки создания детали" #: templates/js/translated/part.js:63 msgid "Part Duplication Options" -msgstr "" +msgstr "Настройки дублирования детали" #: templates/js/translated/part.js:67 msgid "Supplier Options" -msgstr "" +msgstr "Настройки поставщика" #: templates/js/translated/part.js:81 msgid "Add Part Category" -msgstr "" +msgstr "Добавить категорию" #: templates/js/translated/part.js:165 msgid "Create Initial Stock" @@ -8745,7 +8954,7 @@ msgstr "" #: templates/js/translated/part.js:199 msgid "Copy Category Parameters" -msgstr "" +msgstr "Копировать параметры категории" #: templates/js/translated/part.js:200 msgid "Copy parameter templates from selected part category" @@ -8753,11 +8962,11 @@ msgstr "" #: templates/js/translated/part.js:208 msgid "Add Supplier Data" -msgstr "" +msgstr "Добавить данные поставщика" #: templates/js/translated/part.js:209 msgid "Create initial supplier data for this part" -msgstr "" +msgstr "Создать начальные данные поставщика для этой детали" #: templates/js/translated/part.js:265 msgid "Copy Image" @@ -8781,171 +8990,179 @@ msgstr "" #: templates/js/translated/part.js:295 msgid "Parent part category" -msgstr "" +msgstr "Родительская категория" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" -msgstr "" +msgstr "Создать разновидность детали" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" -msgstr "" +msgstr "Вы подписаны на уведомления для данного элемента" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" -msgstr "" +msgstr "Вы подписались на уведомления для данного элемента" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" -msgstr "" +msgstr "Включить уведомления для данного элемента" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" -msgstr "" +msgstr "Вы отписались от уведомлений для данного элемента" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "Отслеживаемая деталь" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Разновидности не найдены" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "Детали не найдены" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Нет категории" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" -msgstr "" +msgstr "Список" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" -msgstr "" +msgstr "Таблица" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" -msgstr "" +msgstr "Дерево" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" -msgstr "" +msgstr "Путь" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -8959,7 +9176,7 @@ msgstr "" #: templates/js/translated/report.js:75 msgid "Select Report Template" -msgstr "" +msgstr "Выберите шаблон отчёта" #: templates/js/translated/report.js:90 msgid "Select Test Report Template" @@ -8973,7 +9190,7 @@ msgstr "" #: templates/js/translated/report.js:243 templates/js/translated/report.js:297 #: templates/js/translated/report.js:351 msgid "No Reports Found" -msgstr "" +msgstr "Отчёты не найдены" #: templates/js/translated/report.js:137 msgid "No report templates found which match selected stock item(s)" @@ -9013,12 +9230,20 @@ msgstr "" #: templates/js/translated/report.js:333 msgid "Select Sales Orders" -msgstr "" +msgstr "Выберите заказ на продажу" #: templates/js/translated/report.js:334 msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,350 +9256,334 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" -msgstr "" +msgstr "Создано несколько единиц хранения" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 -msgid "Warning: Merge operation cannot be reversed" -msgstr "" - -#: templates/js/translated/stock.js:680 -msgid "Some information will be lost when merging stock items" -msgstr "" - #: templates/js/translated/stock.js:682 -msgid "Stock transaction history will be deleted for merged items" -msgstr "" +msgid "Warning: Merge operation cannot be reversed" +msgstr "Предупреждение: Операция объединения не может быть отменена" #: templates/js/translated/stock.js:683 -msgid "Supplier part information will be deleted for merged items" -msgstr "" +msgid "Some information will be lost when merging stock items" +msgstr "Следующие данные будут потеряны в процессе объединения" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:685 +msgid "Stock transaction history will be deleted for merged items" +msgstr "История складских перемещений будет удалена для объединённых элементов" + +#: templates/js/translated/stock.js:686 +msgid "Supplier part information will be deleted for merged items" +msgstr "Информация о деталях поставщика будет удалена для объединённых элементов" + +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" -msgstr "" +msgstr "Отслеживаемая деталь" #: templates/js/translated/table_filters.js:60 msgid "Assembled Part" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" -msgstr "" +msgstr "Код партии" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 -msgid "Build status" +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 +msgid "Build status" +msgstr "Статус сборки" + +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9586,40 +9819,41 @@ msgstr "" #: templates/js/translated/tables.js:433 msgid "Loading data" -msgstr "" +msgstr "Загрузка данных" #: templates/js/translated/tables.js:436 msgid "rows per page" -msgstr "" +msgstr "строк на странице" #: templates/js/translated/tables.js:441 msgid "Showing all rows" -msgstr "" +msgstr "Показываются все строки" #: templates/js/translated/tables.js:443 msgid "Showing" -msgstr "" +msgstr "Показано от" #: templates/js/translated/tables.js:443 msgid "to" -msgstr "" +msgstr "до" #: templates/js/translated/tables.js:443 msgid "of" -msgstr "" +msgstr "из" #: templates/js/translated/tables.js:443 msgid "rows" -msgstr "" +msgstr "строк" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "Поиск" #: templates/js/translated/tables.js:450 msgid "No matching results" -msgstr "" +msgstr "Ничего не найдено" #: templates/js/translated/tables.js:453 msgid "Hide/Show pagination" @@ -9627,7 +9861,7 @@ msgstr "" #: templates/js/translated/tables.js:456 msgid "Refresh" -msgstr "" +msgstr "Обновить" #: templates/js/translated/tables.js:459 msgid "Toggle" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" -msgstr "" +msgstr "Закупки" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" +msgstr "Продажи" + +#: templates/navbar.html:115 +msgid "Show Notifications" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9687,7 +9953,7 @@ msgstr "" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "База данных" #: templates/stats.html:26 msgid "Server is running in debug mode" @@ -9727,23 +9993,23 @@ msgstr "" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "Фоновый процесс" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "Фоновый процесс не запущен" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "Настройки электронной почты" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "Электронная почта не настроена" #: templates/stock_table.html:17 msgid "Barcode Actions" -msgstr "" +msgstr "Действия со штрих-кодом" #: templates/stock_table.html:33 msgid "Print test reports" @@ -9751,7 +10017,7 @@ msgstr "" #: templates/stock_table.html:40 msgid "Stock Options" -msgstr "" +msgstr "Настройки склада" #: templates/stock_table.html:45 msgid "Add to selected stock items" @@ -9823,41 +10089,41 @@ msgstr "" #: users/admin.py:211 msgid "Permissions" -msgstr "" +msgstr "Права доступа" #: users/admin.py:214 msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" -msgstr "" +msgstr "Права доступа" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" -msgstr "" +msgstr "Вид" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" -msgstr "" +msgstr "Разрешение на просмотр элементов" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" -msgstr "" +msgstr "Разрешение на добавление элементов" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" -msgstr "" +msgstr "Разрешение на редактирование элементов" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" -msgstr "" +msgstr "Разрешение на удаление элементов" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index e92f54481c..c48617e48b 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API-slutpunkt hittades inte" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "Ingen åtgärd specificerad" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Bilaga" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Välj fil att bifoga" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "" @@ -152,11 +152,12 @@ msgstr "Kommentar" msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Användare" @@ -193,42 +194,42 @@ msgstr "Fel vid namnbyte av fil" msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Namn" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Beskrivning" @@ -240,7 +241,7 @@ msgstr "Beskrivning (valfritt)" msgid "parent" msgstr "överordnad" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:676 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:679 -msgid "Portugese" +#: InvenTree/settings.py:691 +msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Kinesiska" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree systemhälsokontroll misslyckades" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Väntar" @@ -399,14 +412,14 @@ msgstr "Väntar" msgid "Placed" msgstr "Placerad" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Slutför" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "Avbruten" @@ -445,91 +458,95 @@ msgstr "Förstörd" msgid "Rejected" msgstr "Avvisad" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -589,7 +606,7 @@ msgstr "" msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 0676d6aff8..425a4a4a95 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "" @@ -152,11 +152,12 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "" @@ -193,42 +194,42 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "" @@ -240,7 +241,7 @@ msgstr "" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:666 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:667 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:668 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Spanish (Mexican)" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "French" -msgstr "" - -#: InvenTree/settings.py:671 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Hungarian" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:674 -msgid "Japanese" -msgstr "" - #: InvenTree/settings.py:675 -msgid "Korean" +msgid "Czech" msgstr "" #: InvenTree/settings.py:676 -msgid "Dutch" +msgid "German" msgstr "" #: InvenTree/settings.py:677 -msgid "Norwegian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:678 -msgid "Polish" +msgid "English" msgstr "" #: InvenTree/settings.py:679 -msgid "Portugese" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:680 -msgid "Russian" +msgid "Spanish (Mexican)" msgstr "" #: InvenTree/settings.py:681 -msgid "Swedish" +msgid "Farsi / Persian" msgstr "" #: InvenTree/settings.py:682 -msgid "Thai" +msgid "French" msgstr "" #: InvenTree/settings.py:683 -msgid "Turkish" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:684 -msgid "Vietnamese" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:685 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "" @@ -399,14 +412,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "" @@ -445,91 +458,95 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -589,7 +606,7 @@ msgstr "" msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "" @@ -654,11 +671,11 @@ msgstr "" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "" @@ -805,7 +823,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "" @@ -2538,11 +2649,11 @@ msgstr "" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 2f87cc4b59..4e18d949f5 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "API uç noktası bulunamadı" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "İşlem belirtilmedi" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" @@ -70,23 +70,23 @@ msgstr "Kategori Seçin" #: InvenTree/forms.py:236 msgid "Email (again)" -msgstr "" +msgstr "E-posta (tekrar)" #: InvenTree/forms.py:240 msgid "Email address confirmation" -msgstr "" +msgstr "E-posta adresi onayı" #: InvenTree/forms.py:260 msgid "You must type the same email each time." -msgstr "" +msgstr "Her seferind eaynı e-posta adresini yazmalısınız." #: InvenTree/helpers.py:442 #, python-brace-format msgid "Duplicate serial: {sn}" -msgstr "" +msgstr "Tekrarlanan seri no:{sn}" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" @@ -103,7 +103,7 @@ msgstr "Geçersiz grup: {g}" #: InvenTree/helpers.py:518 #, python-brace-format msgid "Invalid/no group {group}" -msgstr "" +msgstr "Geçersiz grup: {group}" #: InvenTree/helpers.py:524 msgid "No serial numbers found" @@ -116,13 +116,13 @@ msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşme #: InvenTree/models.py:185 msgid "Missing file" -msgstr "" +msgstr "Eksik dosya" #: InvenTree/models.py:186 msgid "Missing external link" -msgstr "" +msgstr "Bozuk dış bağlantı" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "Ek" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "Bağlantı" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -152,11 +152,12 @@ msgstr "Yorum" msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Kullanıcı" @@ -166,69 +167,69 @@ msgstr "yükleme tarihi" #: InvenTree/models.py:241 msgid "Filename must not be empty" -msgstr "" +msgstr "Dosya adı boş olamaz" #: InvenTree/models.py:264 msgid "Invalid attachment directory" -msgstr "" +msgstr "Ek dosya yolu geçersiz" #: InvenTree/models.py:274 #, python-brace-format msgid "Filename contains illegal character '{c}'" -msgstr "" +msgstr "Dosya adı geçersiz karakterler içeriyor'{c}'" #: InvenTree/models.py:277 msgid "Filename missing extension" -msgstr "" +msgstr "Dosya uzantısı yok" #: InvenTree/models.py:284 msgid "Attachment with this filename already exists" -msgstr "" +msgstr "Aynı isimli başka bir dosya zaten var" #: InvenTree/models.py:291 msgid "Error renaming file" -msgstr "" +msgstr "Dosya adı değiştirilirken hata" #: InvenTree/models.py:326 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "Adı" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Açıklama" @@ -240,141 +241,153 @@ msgstr "Açıklama (isteğe bağlı)" msgid "parent" msgstr "üst" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" #: InvenTree/serializers.py:299 msgid "Filename" -msgstr "" +msgstr "Dosya adı" #: InvenTree/serializers.py:334 msgid "Invalid value" -msgstr "" +msgstr "Geçersiz değer" #: InvenTree/serializers.py:355 msgid "Data File" -msgstr "" +msgstr "Veri Dosyası" #: InvenTree/serializers.py:356 msgid "Select data file for upload" -msgstr "" +msgstr "Yüklemek istediğiniz dosyayı seçin" #: InvenTree/serializers.py:380 msgid "Unsupported file type" -msgstr "" +msgstr "Desteklenmeyen dsoya tipi" #: InvenTree/serializers.py:386 msgid "File is too large" -msgstr "" +msgstr "Dosya boyutu çok büyük" #: InvenTree/serializers.py:407 msgid "No columns found in file" -msgstr "" +msgstr "Dosyada kolon bulunamadı" #: InvenTree/serializers.py:410 msgid "No data rows found in file" -msgstr "" +msgstr "Dosyada satır bulunamadı" #: InvenTree/serializers.py:533 msgid "No data rows provided" -msgstr "" +msgstr "Dosyada satır bulunamadı" #: InvenTree/serializers.py:536 msgid "No data columns supplied" -msgstr "" +msgstr "Dosyada uygun kolon bulunamadı" #: InvenTree/serializers.py:623 #, python-brace-format msgid "Missing required column: '{name}'" -msgstr "" +msgstr "Gerekli kolon ismi eksik:'{name}'" #: InvenTree/serializers.py:632 #, python-brace-format msgid "Duplicate column: '{col}'" +msgstr "Tekrarlanan kolon ismi:'{col}'" + +#: InvenTree/settings.py:675 +msgid "Czech" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:676 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" +msgstr "İspanyolca(Meksika)" + +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:682 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" -msgstr "" +msgstr "Macarca" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:679 -msgid "Portugese" +#: InvenTree/settings.py:691 +msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" -msgstr "" +msgstr "Vietnamca" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "Çince" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "InvenTree sistem sağlık kontrolü başarısız" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "Bekliyor" @@ -399,14 +412,14 @@ msgstr "Bekliyor" msgid "Placed" msgstr "Sipariş verildi" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "Tamamlandı" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "İptal edildi" @@ -445,91 +458,95 @@ msgstr "Kullanılamaz durumda" msgid "Rejected" msgstr "Reddedildi" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "Eski stok izleme girişi" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "Stok kalemi oluşturuldu" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "Düzenlenen stok kalemi" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "Atanan seri numarası" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "Stok sayıldı" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "Stok manuel olarak eklendi" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "Stok manuel olarak çıkarıldı" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "Konum değişti" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "Montajda kullanıldı" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "Montajdan çıkarıldı" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "Bileşen ögesinde kullanıldı" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "Bileşen ögesinden çıkarıldı" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "Üst ögeden ayır" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "Alt ögeyi ayır" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" +msgstr "Stok parçalarını birleştir" + +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "Müşteriye gönderildi" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "Müşteriden geri döndü" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "Yapım emri çıktısı oluşturuldu" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "Yapım emri çıktısı tamamlandı" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "Satın alma emri karşılığında alındı" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "Üretim" @@ -589,7 +606,7 @@ msgstr "Şifre Belirle" msgid "Password fields must match" msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Sistem Bilgisi" @@ -654,11 +671,11 @@ msgstr "Yapım İşi Emri" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Yapım İşi Emirleri" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "Referans" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "Yapım işinin kısa açıklaması" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Üst Yapım İşi" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Parça" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "Kaynak Konum" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "Yapım işi durum kodu" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "Sıra numarası" @@ -783,8 +801,8 @@ msgstr "Sıra numarası" msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "Oluşturulma tarihi" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -805,7 +823,7 @@ msgstr "Tamamlama tarihi" msgid "completed by" msgstr "tamamlayan" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "Veren" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "Sorumlu" @@ -826,11 +844,11 @@ msgstr "Sorumlu" msgid "User responsible for this build order" msgstr "Bu yapım işi emrinden sorumlu kullanıcı" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "Harici Bağlantı" @@ -839,17 +857,17 @@ msgstr "Harici Bağlantı" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "Notlar" @@ -869,69 +887,69 @@ msgstr "Yapım işi çıktısı zaten tamamlanmış" msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "Yapım İşi" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "Yapım işi için tahsis edilen parçalar" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "Kaynak stok kalemi" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "Miktar" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "Hedef stok kalemi" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "Konum" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Durum" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "Hedeflenen tarih" @@ -1250,33 +1268,33 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "Vadesi geçmiş" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Tamamlandı" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "Sipariş Emri" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Veren" @@ -1294,184 +1312,188 @@ msgstr "Tamamlanmamış yapım işi çıktıları kaldığı için yapım işi e msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "Yapım İşi Detayları" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "Stok Kaynağı" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "Hedef" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "Hedef konumu belirtilmedi" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "Toplu" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "Oluşturuldu" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "Hedef tarih ayarlanmadı" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "Yapım İşi tamamlanmadı" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "Alt Yapım İşi Emrileri" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "Yapım İşi için Stok Tahsis Et" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "Stok tahsisini kaldır" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "Stok Tahsisini Kaldır" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "Stok Tahsis Et" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "Gerekli parçaları sipariş edin" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "Parça Siparişi" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edildi" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "Tamamlanmamış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "Yeni yapım işi çıktısı oluştur" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "Yazdırma İşlemleri" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "Etiketleri yazdır" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "Tamamlanmış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Ekler" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "Notları Düzenle" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "Yeni Yapım İşi Emri" @@ -1544,849 +1566,937 @@ msgstr "{name.title()} Dosya" msgid "Select {name} file to upload" msgstr "{name} dosyasını yüklemek için seçin" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "Anahtar dizesi benzersiz olmalı" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:655 company/models.py:100 company/models.py:101 +#: common/models.py:700 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 msgid "Company name" msgstr "Şirket adı" -#: common/models.py:656 +#: common/models.py:708 msgid "Internal company name" msgstr "" -#: common/models.py:661 +#: common/models.py:713 msgid "Base URL" msgstr "Ana URL" -#: common/models.py:662 +#: common/models.py:714 msgid "Base URL for server instance" msgstr "" -#: common/models.py:668 +#: common/models.py:720 msgid "Default Currency" msgstr "Varsayılan Para Birimi" -#: common/models.py:669 +#: common/models.py:721 msgid "Default currency" msgstr "Varsayılan para birimi" -#: common/models.py:675 +#: common/models.py:727 msgid "Download from URL" msgstr "URL'den indir" -#: common/models.py:676 +#: common/models.py:728 msgid "Allow download of remote images and files from external URL" msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver" -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:683 +#: common/models.py:735 msgid "Enable barcode scanner support" msgstr "Barkod tarayıcı desteğini etkinleştir" -#: common/models.py:689 +#: common/models.py:741 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:690 +#: common/models.py:742 msgid "Regular expression pattern for matching Part IPN" msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)" -#: common/models.py:694 +#: common/models.py:746 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:695 +#: common/models.py:747 msgid "Allow multiple parts to share the same IPN" msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver" -#: common/models.py:701 +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "Şablon" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "Montaj" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "Bileşen" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "Takip Edilebilir" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Sanal" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "Formlarda Fiyat Göster" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "Test Raporları" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "günler" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" +msgstr "günler" + +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" +msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" + +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" -msgstr "" - -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" -msgstr "" - -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "Formlarda Miktarı Göster" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "Formlarda Miktarı Göster" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "Fiyat" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "Aktif" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Dosya Yükle" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "Alanları Eşleştir" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "Resim" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "Bu şirket üretim yapıyor mu?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "Para birimi" @@ -2514,8 +2625,8 @@ msgstr "Para birimi" msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "Temel Parça" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "Parça seçin" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Üretici" @@ -2538,11 +2649,11 @@ msgstr "Üretici" msgid "Select manufacturer" msgstr "Üretici seçin" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "ÜPN" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "Parametre adı" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "Değer" @@ -2580,10 +2691,10 @@ msgstr "Değer" msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Tedarikçi" @@ -2613,7 +2724,7 @@ msgstr "Tedarikçi seçin" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "Not" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "Paketleme" @@ -2658,7 +2769,7 @@ msgstr "Paketleme" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "çoklu" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "Müşteri" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "Yeni tedarikçi parçası oluştur" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "Parçaları sil" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "Parçaları Sil" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "Tedarikçi Stoku" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "Yeni satın alma emri oluştur" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "Yeni Satın Alma Emri" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "Satış Emirleri" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Yeni satış emri oluştur" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Yeni Satış Emri" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "Atanan Stok" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "Üreticiler" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "Parça siparişi" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "Tedarikçi parçalarını sil" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "Tedarikçi Parçası" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "Tedarikçi Parçası Emirleri" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "Fiyat Bilgisi" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Stok" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "Tedarikçi Parçası Fiyatlandırması" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "Fiyatlandırma" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "Yeni Üretici" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "Müşteriler" @@ -3100,7 +3218,7 @@ msgstr "Müşteriler" msgid "New Customer" msgstr "Yeni Müşteri" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "Şirketler" @@ -3108,24 +3226,24 @@ msgstr "Şirketler" msgid "New Company" msgstr "Yeni Şirket" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "Resmi İndirin" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "Geçersiz yanıt: {code}" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "Tedarikçi Parçası Seçin" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "Sipariş Emri için Dosya Yükle" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "Sipariş Notları" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "Uyarı" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "İşlemler" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "Varsayılan Konum" @@ -4004,12 +4122,14 @@ msgstr "Varsayılan Konum" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "Parça Kategorileri" @@ -4057,9 +4177,10 @@ msgstr "Parça Kategorileri" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Parçalar" @@ -4084,472 +4205,482 @@ msgstr "Sonraki müsait seri numarası" msgid "Most recent serial number is" msgstr "En son seri numarası" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "Parça adı" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "Çeşidi" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "Parça açıklaması" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "Anahtar kelimeler" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "DPN" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "Revizyon" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "Minimum Stok" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "Gerekli" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alt kategoriler" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "Parça Stoku" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "Parça Test Şablonları" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "Test Şablonu Ekle" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "Parça Çeşitleri" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "Yeni çeşit oluştur" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "Yeni Çeşit" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "Parça Tedarikçileri" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "Barkod işlemleri" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "Etiket Yazdır" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "Stok işlemleri" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "Parça işlemleri" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "Bu parça bir şablon parçadır (Bu parçanın çeşitleri yapılabilir)" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "Parça stoku seri numarası ile takip edilebilir" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "Bu parça harici tedarikçilerden satın alınabilir" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "Pasif" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "Bu parça %(link)s parçasının bir çeşididir" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "Yapım İşi Emirleri için Gerekli" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "Satış Emirleri için Gerekli" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "Son Seri Numarası" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "Hesapla" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "Birim Maliyeti" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "Toplam Maliyet" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "Bu parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. B msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "Aşağıdaki parçalara kategori ayarla" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "Stok Yok" @@ -5345,112 +5458,109 @@ msgstr "Yeni parça çeşidi oluştur" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "Hiçbiri" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "Parça Parametre Şablonu Oluştur" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "Parça Parametre Şablonu Düzenle" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "Parça Parametre Şablonu Sil" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "Kategori Parametre Şablonu Oluştur" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "Kategori Parametre Şablonu Düzenle" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "Kategori Parametre Şablonu Sil" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "Seri Numara" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "Seri No" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "Bu seri numarasına sahip stok kalemi zaten var" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seri numaraları zaten mevcut: {exists}" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "Konuma Tara" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "Yazdırma işlemleri" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "Stoku seri numarala" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "Çeşide çevir" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "Stok kalemi tüm gerekli testleri geçmedi" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz." -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "Konum ayarlanmadı" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "Konum işlemleri" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "Konumu düzenle" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "Konumu sil" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "Yeni Konum" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "Yazdırma İşlemleri" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "Etiketleri yazdır" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?" @@ -6467,11 +6570,11 @@ msgstr "Bu işlem kolayca geri alınamaz" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "Stok konumunu düzenle" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "Stok ayarlamasını onayla" @@ -6519,71 +6622,72 @@ msgstr "Stok ayarlamasını onayla" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "Yeni Stok konumu oluştur" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "Stok Konumunu Sil" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "Yapım İşi Emirleri için Gerekli" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "Kategori parametre şablonu bulunamadı" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" msgstr "Şablonu Düzenle" -#: templates/InvenTree/settings/settings.html:231 -#: templates/InvenTree/settings/settings.html:330 +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "Şablonu Sil" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "Parça parametre şablonu bulunamadı" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "Arama Ayarları" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "Ana Sayfa Ayarları" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "InvenTree Sürüm Bilgisi" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "Dosya Ekle" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "Mevcut" @@ -7496,15 +7662,6 @@ msgstr "Mevcut" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "Cevap Yok" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "Stok Kalemlerini bu konuma kaydet" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "Stok kalemi zaten bu konumda" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "Konuma Kaydet" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "Barkod geçerli bir konumla eşleşmiyor" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "Gerekli Parça" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "Tamamlanmış Yapım İşi Emri" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "Stok tahsisini düzenle" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "Stok tahsisini sil" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "Parçaları Seçin" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "Stok tahsisini onayla" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "Şablon Parça" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "Etiket yazdırılmadan önce stok kalemleri seçilmeli" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "Etiket Bulunamadı" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "Seçili stok kalemleri için etiket bulunamadı" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "Stok Konumu Seç" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "Etiket yazdırılmadan önce stok konumları seçilmeli" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "Seçili konumlarla eşleşen etiket bulunamadı" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "Etiket Seç" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "Etiket Şablonu Seç" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "Çeşit bulunamadı" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "Çeşit bulunamadı" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "Katagori Yok" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "Stok konumu ayarlanmadı" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "konumlar" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "Tanımsız konum" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "Detaylar" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "Konum artık yok" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "Konumları dahil et" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "Seri numarası" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "Alt kategorilerdeki parçaları dahil et" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "DPN Var" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9598,148 +9831,181 @@ msgstr "" #: templates/js/translated/tables.js:443 msgid "Showing" -msgstr "" +msgstr "Gösteriliyor" #: templates/js/translated/tables.js:443 msgid "to" -msgstr "" +msgstr "için" #: templates/js/translated/tables.js:443 msgid "of" -msgstr "" +msgstr "yüzünden" #: templates/js/translated/tables.js:443 msgid "rows" -msgstr "" +msgstr "satırlar" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" -msgstr "" +msgstr "Arama" #: templates/js/translated/tables.js:450 msgid "No matching results" -msgstr "" +msgstr "Sonuç bulunamadı" #: templates/js/translated/tables.js:453 msgid "Hide/Show pagination" -msgstr "" +msgstr "Sayfalandırmayı Göster" #: templates/js/translated/tables.js:456 msgid "Refresh" -msgstr "" +msgstr "Yenile" #: templates/js/translated/tables.js:459 msgid "Toggle" -msgstr "" +msgstr "Değiştir" #: templates/js/translated/tables.js:462 msgid "Columns" -msgstr "" +msgstr "Sütunlar" #: templates/js/translated/tables.js:465 msgid "All" -msgstr "" +msgstr "Tümü" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" -msgstr "" +msgstr "Al" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" -msgstr "" +msgstr "Sat" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "Bildirimleri Göster" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "Yeni Bildirimler" + +#: templates/navbar.html:139 msgid "Logout" -msgstr "" +msgstr "Çıkış" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" -msgstr "" +msgstr "Giriş" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" +msgstr "InvenTree Hakkında" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" -msgstr "" +#: templates/notifications.html:13 +msgid "Show all notifications and history" +msgstr "Tüm bildirimleri ve içeriğini göster" #: templates/qr_code.html:11 msgid "QR data not provided" -msgstr "" +msgstr "QR sağlanamadı" #: templates/registration/logged_out.html:6 msgid "You were logged out successfully." -msgstr "" +msgstr "Başarıyla çıkış yapıldı." #: templates/registration/logged_out.html:8 msgid "Log in again" -msgstr "" +msgstr "Tekrar giriş yap" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "Arama sonuçlarının hepsini göster" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "Aramayı temizle" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "Sonuçları filtrele" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "Arama menüsünü kapat" + +#: templates/search.html:35 +msgid "No search results" +msgstr "Arama sonucu yok" #: templates/stats.html:9 msgid "Server" -msgstr "" +msgstr "Sunucu" #: templates/stats.html:13 msgid "Instance Name" -msgstr "" +msgstr "Sistem adı" #: templates/stats.html:18 msgid "Database" -msgstr "" +msgstr "Veritabanı" #: templates/stats.html:26 msgid "Server is running in debug mode" -msgstr "" +msgstr "Sunucu debug modunda çalışıyor" #: templates/stats.html:33 msgid "Docker Mode" -msgstr "" +msgstr "Docker modu" #: templates/stats.html:34 msgid "Server is deployed using docker" -msgstr "" +msgstr "Server docker ile yayınlandı" #: templates/stats.html:39 msgid "Plugin Support" -msgstr "" +msgstr "Eklenti Desteği" #: templates/stats.html:43 msgid "Plugin support enabled" -msgstr "" +msgstr "Eklenti desteği etkin" #: templates/stats.html:45 msgid "Plugin support disabled" -msgstr "" +msgstr "Eklenti desteği devre dışı" #: templates/stats.html:52 msgid "Server status" -msgstr "" +msgstr "Sunucu Durumu" #: templates/stats.html:55 msgid "Healthy" -msgstr "" +msgstr "Sağlıklı" #: templates/stats.html:57 msgid "Issues detected" -msgstr "" +msgstr "Sorun algılandı" #: templates/stats.html:64 msgid "Background Worker" -msgstr "" +msgstr "Arkaplan işi" #: templates/stats.html:67 msgid "Background worker not running" -msgstr "" +msgstr "Arkaplan işleri çalışmıyor" #: templates/stats.html:75 msgid "Email Settings" -msgstr "" +msgstr "E-posta Ayarları" #: templates/stats.html:78 msgid "Email settings not configured" -msgstr "" +msgstr "E-posta ayarları yapılandırılmadı" #: templates/stock_table.html:17 msgid "Barcode Actions" @@ -9747,117 +10013,117 @@ msgstr "Barkod İşlemleri" #: templates/stock_table.html:33 msgid "Print test reports" -msgstr "" +msgstr "Test raporunu yazdır" #: templates/stock_table.html:40 msgid "Stock Options" -msgstr "" +msgstr "Stok Seçenekleri" #: templates/stock_table.html:45 msgid "Add to selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını ekle" #: templates/stock_table.html:46 msgid "Remove from selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını kaldır" #: templates/stock_table.html:47 msgid "Stocktake selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını değerlendir" #: templates/stock_table.html:48 msgid "Move selected stock items" -msgstr "" +msgstr "Stok parçalarını taşı" #: templates/stock_table.html:49 msgid "Merge selected stock items" -msgstr "" +msgstr "Seçili stok parçalarını birleştir" #: templates/stock_table.html:49 msgid "Merge stock" -msgstr "" +msgstr "Stok birlşetirme" #: templates/stock_table.html:50 msgid "Order selected items" -msgstr "" +msgstr "Seçili parçaları sırala" #: templates/stock_table.html:52 msgid "Change status" -msgstr "" +msgstr "Durumu Değiştir" #: templates/stock_table.html:52 msgid "Change stock status" -msgstr "" +msgstr "Stok durumunu değiştir" #: templates/stock_table.html:55 msgid "Delete selected items" -msgstr "" +msgstr "Seçili parçaları sil" #: templates/stock_table.html:55 msgid "Delete stock" -msgstr "" +msgstr "Parça sil" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "Evet" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "Hayır" #: users/admin.py:64 msgid "Users" -msgstr "" +msgstr "Kullanıcılar" #: users/admin.py:65 msgid "Select which users are assigned to this group" -msgstr "" +msgstr "Bu gruba atanacak kullanıcıyı seçin" #: users/admin.py:187 msgid "The following users are members of multiple groups:" -msgstr "" +msgstr "Aşağıdaki kullanıcılar birden çok grubun üyesi:" #: users/admin.py:210 msgid "Personal info" -msgstr "" +msgstr "Kullanıcı bilgisi" #: users/admin.py:211 msgid "Permissions" -msgstr "" +msgstr "Yetkiler" #: users/admin.py:214 msgid "Important dates" -msgstr "" +msgstr "Önemli tarihler" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" -msgstr "" +msgstr "İzinleri ayarla" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" -msgstr "" +msgstr "Grup" -#: users/models.py:211 +#: users/models.py:212 msgid "View" -msgstr "" +msgstr "Görünüm" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" -msgstr "" +msgstr "Parçayı görüntüleme izni" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" -msgstr "" +msgstr "Parça ekleme izni" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" -msgstr "" +msgstr "Değiştir" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" -msgstr "" +msgstr "Parçaları düzenleme izni" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" -msgstr "" +msgstr "Parçaları silme izni" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 6334553036..fd463ab1fb 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "" @@ -122,7 +122,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "" @@ -152,11 +152,12 @@ msgstr "Bình luận" msgid "File comment" msgstr "" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "Người dùng" @@ -193,42 +194,42 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "Mô tả" @@ -240,7 +241,7 @@ msgstr "Mô tả (tùy chọn)" msgid "parent" msgstr "" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:666 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:667 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:668 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Spanish (Mexican)" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "French" -msgstr "" - -#: InvenTree/settings.py:671 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Hungarian" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:674 -msgid "Japanese" -msgstr "" - #: InvenTree/settings.py:675 -msgid "Korean" +msgid "Czech" msgstr "" #: InvenTree/settings.py:676 -msgid "Dutch" +msgid "German" msgstr "" #: InvenTree/settings.py:677 -msgid "Norwegian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:678 -msgid "Polish" +msgid "English" msgstr "" #: InvenTree/settings.py:679 -msgid "Portugese" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:680 -msgid "Russian" +msgid "Spanish (Mexican)" msgstr "" #: InvenTree/settings.py:681 -msgid "Swedish" +msgid "Farsi / Persian" msgstr "" #: InvenTree/settings.py:682 -msgid "Thai" +msgid "French" msgstr "" #: InvenTree/settings.py:683 -msgid "Turkish" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:684 -msgid "Vietnamese" +msgid "Hungarian" msgstr "" #: InvenTree/settings.py:685 +msgid "Italian" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Japanese" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Korean" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Dutch" +msgstr "" + +#: InvenTree/settings.py:689 +msgid "Norwegian" +msgstr "" + +#: InvenTree/settings.py:690 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:691 +msgid "Portuguese" +msgstr "" + +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:694 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:695 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:696 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:697 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "" @@ -399,14 +412,14 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "" @@ -445,91 +458,95 @@ msgstr "" msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "" @@ -589,7 +606,7 @@ msgstr "" msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "Thông tin hệ thống" @@ -654,11 +671,11 @@ msgstr "Tạo đơn hàng" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "Tạo đơn hàng" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "" #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "Nguyên liệu" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "" @@ -783,8 +801,8 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -805,7 +823,7 @@ msgstr "Ngày hoàn thành" msgid "completed by" msgstr "" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "" @@ -826,11 +844,11 @@ msgstr "" msgid "User responsible for this build order" msgstr "" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "" @@ -839,17 +857,17 @@ msgstr "" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "" @@ -869,69 +887,69 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "Trạng thái" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "" @@ -1250,33 +1268,33 @@ msgstr "" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "Đã hoàn thành" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" -msgstr "" - -#: common/models.py:644 -msgid "String descriptor for the server instance" -msgstr "" - -#: common/models.py:648 -msgid "Use instance name" -msgstr "" - -#: common/models.py:649 -msgid "Use the instance name in the title-bar" -msgstr "" - -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" #: common/models.py:689 -msgid "IPN Regex" +msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" +#: common/models.py:693 +msgid "Use instance name" msgstr "" #: common/models.py:694 -msgid "Allow Duplicate IPN" +msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 -msgid "Allow Editing IPN" +msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:702 -msgid "Allow changing the IPN value while editing a part" +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" msgstr "" #: common/models.py:708 +msgid "Internal company name" +msgstr "" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:754 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" +#: common/models.py:949 +msgid "Stock Expiry" msgstr "" -#: common/models.py:951 -msgid "Enable password forgot" +#: common/models.py:950 +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" +#: common/models.py:956 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" +msgid "Allow sale of expired stock" msgstr "" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:978 +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:985 +msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:1007 -msgid "Enable URL integration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1199 -msgid "Inline report display" -msgstr "" - -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "" @@ -2409,7 +2519,7 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "" @@ -2514,8 +2625,8 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "Nhà sản xuất" @@ -2538,11 +2649,11 @@ msgstr "Nhà sản xuất" msgid "Select manufacturer" msgstr "" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "" @@ -2571,8 +2682,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "" @@ -2580,10 +2691,10 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "Nhà cung cấp" @@ -2613,7 +2724,7 @@ msgstr "" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "" @@ -2658,7 +2769,7 @@ msgstr "" msgid "Part packaging" msgstr "" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2872,83 +2985,83 @@ msgstr "" msgid "Supplier List" msgstr "" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "Kiện hàng" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "" @@ -3100,7 +3218,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "" @@ -3108,24 +3226,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "Đơn hàng" @@ -3361,8 +3479,8 @@ msgstr "" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "Giá mua" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "" @@ -4004,12 +4122,14 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "" @@ -4057,9 +4177,10 @@ msgstr "" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "Nguyên liệu" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" @@ -4658,23 +4789,23 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "Số seri mới nhất" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "Cài đặt" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "Quản trị" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "" msgid "Edit setting" msgstr "" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "Chỉnh sửa cài đặt toàn cục" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "Chỉnh sửa cài đặt người dùng" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 -msgid "Edit Template" -msgstr "" - #: templates/InvenTree/settings/settings.html:231 #: templates/InvenTree/settings/settings.html:330 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "Cài đặt tìm kiếm" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "Cài đặt toàn cục" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -7183,7 +7352,7 @@ msgstr "" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "Thiết lập trang chủ" msgid "Label Settings" msgstr "" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "" @@ -7496,15 +7662,6 @@ msgstr "" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "Số seri mới nhất" @@ -7984,141 +8157,149 @@ msgstr "" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "Mua" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "Bán" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "Đăng xuất" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "Giới thiệu" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 46e2b08da0..d3d55a8794 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-16 22:11+0000\n" -"PO-Revision-Date: 2022-03-16 22:14\n" +"POT-Creation-Date: 2022-04-27 11:51+0000\n" +"PO-Revision-Date: 2022-04-27 11:55\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -18,15 +18,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 138\n" -#: InvenTree/api.py:55 +#: InvenTree/api.py:57 msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/api.py:101 +#: InvenTree/api.py:103 msgid "No action specified" msgstr "未指定操作" -#: InvenTree/api.py:116 +#: InvenTree/api.py:118 msgid "No matching action found" msgstr "未找到指定操作" @@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}" msgstr "" #: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435 -#: stock/views.py:983 +#: stock/views.py:993 msgid "Invalid quantity provided" msgstr "提供的数量无效" @@ -122,7 +122,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:197 stock/models.py:2138 +#: InvenTree/models.py:197 stock/models.py:2202 #: templates/js/translated/attachment.js:119 msgid "Attachment" msgstr "附件" @@ -132,15 +132,15 @@ msgid "Select file to attach" msgstr "选择附件" #: InvenTree/models.py:204 company/models.py:131 company/models.py:348 -#: company/models.py:564 order/models.py:127 part/models.py:868 +#: company/models.py:564 order/models.py:127 part/models.py:873 #: report/templates/report/inventree_build_order_base.html:165 #: templates/js/translated/company.js:540 -#: templates/js/translated/company.js:829 templates/js/translated/part.js:1348 +#: templates/js/translated/company.js:829 templates/js/translated/part.js:1436 msgid "Link" msgstr "链接" -#: InvenTree/models.py:205 build/models.py:332 part/models.py:869 -#: stock/models.py:633 +#: InvenTree/models.py:205 build/models.py:332 part/models.py:874 +#: stock/models.py:669 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -152,11 +152,12 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1288 -#: common/models.py:1289 common/models.py:1517 common/models.py:1518 -#: part/models.py:2344 part/models.py:2364 +#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1409 +#: common/models.py:1410 common/models.py:1631 common/models.py:1632 +#: common/models.py:1861 common/models.py:1862 part/models.py:2374 +#: part/models.py:2394 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2631 +#: templates/js/translated/stock.js:2517 msgid "User" msgstr "用户" @@ -193,42 +194,42 @@ msgstr "重命名文件出错" msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1503 -#: company/models.py:415 label/models.py:112 part/models.py:812 -#: part/models.py:2528 plugin/models.py:40 report/models.py:181 +#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1617 +#: company/models.py:415 label/models.py:112 part/models.py:817 +#: part/models.py:2558 plugin/models.py:40 report/models.py:181 +#: templates/InvenTree/notifications/notifications.html:84 #: templates/InvenTree/settings/mixins/urls.html:13 -#: templates/InvenTree/settings/plugin.html:48 -#: templates/InvenTree/settings/plugin.html:125 +#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:132 #: templates/InvenTree/settings/plugin_settings.html:23 -#: templates/InvenTree/settings/settings.html:319 -#: templates/js/translated/company.js:641 templates/js/translated/part.js:569 -#: templates/js/translated/part.js:708 templates/js/translated/part.js:1655 -#: templates/js/translated/stock.js:2431 +#: templates/InvenTree/settings/settings.html:320 +#: templates/js/translated/company.js:641 templates/js/translated/part.js:610 +#: templates/js/translated/part.js:762 templates/js/translated/part.js:1743 +#: templates/js/translated/stock.js:2287 msgid "Name" msgstr "名称" #: InvenTree/models.py:349 build/models.py:209 -#: build/templates/build/detail.html:25 company/models.py:354 +#: build/templates/build/detail.html:24 company/models.py:354 #: company/models.py:570 company/templates/company/company_base.html:68 -#: company/templates/company/manufacturer_part.html:76 +#: company/templates/company/manufacturer_part.html:77 #: company/templates/company/supplier_part.html:73 label/models.py:119 -#: order/models.py:125 part/models.py:835 part/templates/part/category.html:74 -#: part/templates/part/part_base.html:163 +#: order/models.py:125 part/models.py:840 part/templates/part/category.html:74 +#: part/templates/part/part_base.html:167 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:92 +#: stock/templates/stock/location.html:94 #: templates/InvenTree/settings/plugin_settings.html:33 -#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763 -#: templates/js/translated/build.js:1988 templates/js/translated/company.js:345 +#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:779 +#: templates/js/translated/build.js:2056 templates/js/translated/company.js:345 #: templates/js/translated/company.js:551 #: templates/js/translated/company.js:840 templates/js/translated/order.js:971 #: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454 -#: templates/js/translated/part.js:628 templates/js/translated/part.js:1023 -#: templates/js/translated/part.js:1108 templates/js/translated/part.js:1278 -#: templates/js/translated/part.js:1674 templates/js/translated/part.js:1743 -#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2443 -#: templates/js/translated/stock.js:2481 +#: templates/js/translated/part.js:669 templates/js/translated/part.js:1077 +#: templates/js/translated/part.js:1350 templates/js/translated/part.js:1762 +#: templates/js/translated/part.js:1831 templates/js/translated/stock.js:1685 +#: templates/js/translated/stock.js:2299 templates/js/translated/stock.js:2354 msgid "Description" msgstr "描述信息" @@ -240,7 +241,7 @@ msgstr "描述 (可选)" msgid "parent" msgstr "上级项" -#: InvenTree/serializers.py:65 part/models.py:2847 +#: InvenTree/serializers.py:65 part/models.py:2891 msgid "Must be a valid number" msgstr "必须是有效数字" @@ -294,87 +295,99 @@ msgstr "" msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:675 +msgid "Czech" +msgstr "" + +#: InvenTree/settings.py:676 msgid "German" msgstr "德语" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:677 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:678 msgid "English" msgstr "英语" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:679 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:680 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:681 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/settings.py:682 msgid "French" msgstr "法语" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:683 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:684 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:673 +#: InvenTree/settings.py:685 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:674 +#: InvenTree/settings.py:686 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:675 +#: InvenTree/settings.py:687 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:676 +#: InvenTree/settings.py:688 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:677 +#: InvenTree/settings.py:689 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:678 +#: InvenTree/settings.py:690 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:679 -msgid "Portugese" +#: InvenTree/settings.py:691 +msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:680 +#: InvenTree/settings.py:692 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/settings.py:693 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:681 +#: InvenTree/settings.py:694 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:682 +#: InvenTree/settings.py:695 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:683 +#: InvenTree/settings.py:696 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:684 +#: InvenTree/settings.py:697 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:685 +#: InvenTree/settings.py:698 msgid "Chinese" msgstr "中文(简体)" @@ -391,7 +404,7 @@ msgid "InvenTree system health checks failed" msgstr "InventTree系统健康检查失败" #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:318 templates/js/translated/table_filters.js:308 +#: InvenTree/status_codes.py:323 templates/js/translated/table_filters.js:326 msgid "Pending" msgstr "待定" @@ -399,14 +412,14 @@ msgstr "待定" msgid "Placed" msgstr "已添加" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:321 +#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:326 #: order/templates/order/order_base.html:128 #: order/templates/order/sales_order_base.html:132 msgid "Complete" msgstr "完成" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:320 +#: InvenTree/status_codes.py:325 msgid "Cancelled" msgstr "已取消" @@ -445,91 +458,95 @@ msgstr "已销毁" msgid "Rejected" msgstr "Rejected" -#: InvenTree/status_codes.py:273 +#: InvenTree/status_codes.py:276 msgid "Legacy stock tracking entry" msgstr "旧库存跟踪条目" -#: InvenTree/status_codes.py:275 +#: InvenTree/status_codes.py:278 msgid "Stock item created" msgstr "库存项已创建" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:280 msgid "Edited stock item" msgstr "已编辑库存项" -#: InvenTree/status_codes.py:278 +#: InvenTree/status_codes.py:281 msgid "Assigned serial number" msgstr "已分配序列号" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:283 msgid "Stock counted" msgstr "库存计数" -#: InvenTree/status_codes.py:281 +#: InvenTree/status_codes.py:284 msgid "Stock manually added" msgstr "已手动添加库存" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:285 msgid "Stock manually removed" msgstr "库存手动删除" -#: InvenTree/status_codes.py:284 +#: InvenTree/status_codes.py:287 msgid "Location changed" msgstr "仓储地点已更改" -#: InvenTree/status_codes.py:286 +#: InvenTree/status_codes.py:289 msgid "Installed into assembly" msgstr "安装到组装中" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:290 msgid "Removed from assembly" msgstr "已从组装中删除" -#: InvenTree/status_codes.py:289 +#: InvenTree/status_codes.py:292 msgid "Installed component item" msgstr "已安装组件项" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:293 msgid "Removed component item" msgstr "已删除组件项" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:295 msgid "Split from parent item" msgstr "从父项拆分" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:296 msgid "Split child item" msgstr "拆分子项" -#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2169 +#: InvenTree/status_codes.py:298 templates/js/translated/stock.js:2025 msgid "Merged stock items" msgstr "" -#: InvenTree/status_codes.py:297 templates/js/translated/table_filters.js:213 +#: InvenTree/status_codes.py:300 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:302 templates/js/translated/table_filters.js:213 msgid "Sent to customer" msgstr "发送给客户" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:303 msgid "Returned from customer" msgstr "从客户退货" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:305 msgid "Build order output created" msgstr "已创建生产订单输出" -#: InvenTree/status_codes.py:301 +#: InvenTree/status_codes.py:306 msgid "Build order output completed" msgstr "生产订单输出已完成" -#: InvenTree/status_codes.py:302 +#: InvenTree/status_codes.py:307 msgid "Consumed by build order" msgstr "" -#: InvenTree/status_codes.py:304 +#: InvenTree/status_codes.py:309 msgid "Received against purchase order" msgstr "收到定购单" -#: InvenTree/status_codes.py:319 +#: InvenTree/status_codes.py:324 msgid "Production" msgstr "生产中" @@ -589,7 +606,7 @@ msgstr "设置密码" msgid "Password fields must match" msgstr "密码字段必须相匹配。" -#: InvenTree/views.py:883 templates/navbar.html:126 +#: InvenTree/views.py:883 templates/navbar.html:151 msgid "System Information" msgstr "系统信息" @@ -654,11 +671,11 @@ msgstr "生产订单" #: build/models.py:140 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 -#: order/templates/order/sales_order_detail.html:92 +#: order/templates/order/sales_order_detail.html:91 #: order/templates/order/so_sidebar.html:13 -#: part/templates/part/part_sidebar.html:23 templates/InvenTree/index.html:221 +#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:139 -#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44 +#: templates/InvenTree/settings/sidebar.html:45 users/models.py:44 msgid "Build Orders" msgstr "生产订单" @@ -667,11 +684,11 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:201 order/models.py:213 order/models.py:563 -#: order/models.py:843 part/models.py:2758 +#: order/models.py:843 part/models.py:2802 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1414 +#: templates/js/translated/bom.js:786 templates/js/translated/build.js:1432 #: templates/js/translated/order.js:1223 templates/js/translated/order.js:2341 msgid "Reference" msgstr "引用" @@ -681,7 +698,7 @@ msgid "Brief description of the build" msgstr "生产的简短描述." #: build/models.py:221 build/templates/build/build_base.html:169 -#: build/templates/build/detail.html:88 +#: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上级生产" @@ -690,13 +707,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" #: build/models.py:227 build/templates/build/build_base.html:77 -#: build/templates/build/detail.html:30 company/models.py:706 +#: build/templates/build/detail.html:29 company/models.py:706 #: order/models.py:912 order/models.py:986 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:367 -#: part/models.py:2290 part/models.py:2306 part/models.py:2325 -#: part/models.py:2342 part/models.py:2444 part/models.py:2566 -#: part/models.py:2656 part/models.py:2733 part/models.py:3040 -#: part/serializers.py:669 part/templates/part/part_app_base.html:8 +#: part/models.py:2320 part/models.py:2336 part/models.py:2355 +#: part/models.py:2372 part/models.py:2474 part/models.py:2596 +#: part/models.py:2686 part/models.py:2777 part/models.py:3067 +#: part/serializers.py:922 part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 #: part/templates/part/upload_bom.html:52 @@ -706,18 +723,19 @@ msgstr "此次生产匹配的订单" #: templates/InvenTree/search.html:80 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 -#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551 -#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903 -#: templates/js/translated/build.js:1283 templates/js/translated/build.js:1680 -#: templates/js/translated/build.js:1993 templates/js/translated/company.js:492 +#: templates/js/translated/barcode.js:382 templates/js/translated/bom.js:551 +#: templates/js/translated/bom.js:744 templates/js/translated/build.js:903 +#: templates/js/translated/build.js:1301 templates/js/translated/build.js:1748 +#: templates/js/translated/build.js:2061 templates/js/translated/company.js:492 #: templates/js/translated/company.js:749 templates/js/translated/order.js:84 #: templates/js/translated/order.js:711 templates/js/translated/order.js:1177 #: templates/js/translated/order.js:1781 templates/js/translated/order.js:2130 -#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1008 -#: templates/js/translated/part.js:1089 templates/js/translated/part.js:1256 -#: templates/js/translated/stock.js:527 templates/js/translated/stock.js:692 -#: templates/js/translated/stock.js:899 templates/js/translated/stock.js:1622 -#: templates/js/translated/stock.js:2706 templates/js/translated/stock.js:2805 +#: templates/js/translated/order.js:2325 templates/js/translated/part.js:1062 +#: templates/js/translated/part.js:1132 templates/js/translated/part.js:1328 +#: templates/js/translated/stock.js:530 templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:902 templates/js/translated/stock.js:1642 +#: templates/js/translated/stock.js:2380 templates/js/translated/stock.js:2575 +#: templates/js/translated/stock.js:2675 msgid "Part" msgstr "商品" @@ -734,7 +752,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" #: build/models.py:249 build/serializers.py:730 -#: templates/js/translated/build.js:1668 templates/js/translated/order.js:1769 +#: templates/js/translated/build.js:1736 templates/js/translated/order.js:1769 msgid "Source Location" msgstr "来源地点" @@ -775,7 +793,7 @@ msgid "Build status code" msgstr "生产状态代码" #: build/models.py:287 build/serializers.py:218 order/serializers.py:272 -#: stock/models.py:637 templates/js/translated/order.js:573 +#: stock/models.py:673 templates/js/translated/order.js:573 msgid "Batch Code" msgstr "批量代码" @@ -783,8 +801,8 @@ msgstr "批量代码" msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:294 order/models.py:129 part/models.py:1007 -#: part/templates/part/part_base.html:329 templates/js/translated/order.js:1467 +#: build/models.py:294 order/models.py:129 part/models.py:1012 +#: part/templates/part/part_base.html:305 templates/js/translated/order.js:1467 msgid "Creation Date" msgstr "创建日期" @@ -797,7 +815,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" #: build/models.py:302 order/models.py:255 -#: templates/js/translated/build.js:2070 +#: templates/js/translated/build.js:2138 msgid "Completion Date" msgstr "完成日期:" @@ -805,7 +823,7 @@ msgstr "完成日期:" msgid "completed by" msgstr "完成人" -#: build/models.py:316 templates/js/translated/build.js:2038 +#: build/models.py:316 templates/js/translated/build.js:2106 msgid "Issued by" msgstr "发布者" @@ -814,11 +832,11 @@ msgid "User who issued this build order" msgstr "发布此生产订单的用户" #: build/models.py:325 build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:116 order/models.py:143 +#: build/templates/build/detail.html:115 order/models.py:143 #: order/templates/order/order_base.html:170 -#: order/templates/order/sales_order_base.html:182 part/models.py:1011 +#: order/templates/order/sales_order_base.html:182 part/models.py:1016 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:2050 templates/js/translated/order.js:1005 +#: templates/js/translated/build.js:2118 templates/js/translated/order.js:1005 msgid "Responsible" msgstr "责任人" @@ -826,11 +844,11 @@ msgstr "责任人" msgid "User responsible for this build order" msgstr "负责此生产订单的用户" -#: build/models.py:331 build/templates/build/detail.html:102 -#: company/templates/company/manufacturer_part.html:102 +#: build/models.py:331 build/templates/build/detail.html:101 +#: company/templates/company/manufacturer_part.html:103 #: company/templates/company/supplier_part.html:126 -#: part/templates/part/part_base.html:370 stock/models.py:631 -#: stock/templates/stock/item_base.html:352 +#: part/templates/part/part_base.html:346 stock/models.py:667 +#: stock/templates/stock/item_base.html:357 msgid "External Link" msgstr "外部链接" @@ -839,17 +857,17 @@ msgstr "外部链接" #: company/models.py:577 company/templates/company/sidebar.html:25 #: order/models.py:147 order/models.py:845 order/models.py:1107 #: order/templates/order/po_sidebar.html:11 -#: order/templates/order/so_sidebar.html:17 part/models.py:996 -#: part/templates/part/detail.html:139 part/templates/part/part_sidebar.html:60 +#: order/templates/order/so_sidebar.html:17 part/models.py:1001 +#: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:137 stock/forms.py:171 stock/models.py:703 -#: stock/models.py:2038 stock/models.py:2144 stock/serializers.py:332 +#: stock/forms.py:137 stock/forms.py:171 stock/models.py:740 +#: stock/models.py:2102 stock/models.py:2208 stock/serializers.py:332 #: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927 #: stock/templates/stock/stock_sidebar.html:25 -#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934 +#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:972 #: templates/js/translated/company.js:845 templates/js/translated/order.js:1344 #: templates/js/translated/order.js:1650 templates/js/translated/order.js:2499 -#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1900 +#: templates/js/translated/stock.js:1316 templates/js/translated/stock.js:1921 msgid "Notes" msgstr "备注" @@ -869,69 +887,69 @@ msgstr "生产产出已完成" msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" -#: build/models.py:1168 +#: build/models.py:1171 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1177 +#: build/models.py:1180 #, python-brace-format msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})" msgstr "" -#: build/models.py:1187 +#: build/models.py:1190 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1193 order/models.py:1225 +#: build/models.py:1196 order/models.py:1225 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" -#: build/models.py:1199 +#: build/models.py:1202 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1256 +#: build/models.py:1259 msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1325 stock/templates/stock/item_base.html:324 -#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1966 -#: templates/navbar.html:35 +#: build/models.py:1328 stock/templates/stock/item_base.html:329 +#: templates/InvenTree/search.html:137 templates/js/translated/build.js:2034 +#: templates/navbar.html:37 msgid "Build" msgstr "生产" -#: build/models.py:1326 +#: build/models.py:1329 msgid "Build to allocate parts" msgstr "" -#: build/models.py:1342 build/serializers.py:576 order/serializers.py:783 +#: build/models.py:1345 build/serializers.py:576 order/serializers.py:783 #: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635 #: stock/serializers.py:753 stock/templates/stock/item_base.html:9 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:346 +#: stock/templates/stock/item_base.html:351 #: templates/js/translated/build.js:688 templates/js/translated/build.js:693 -#: templates/js/translated/build.js:1682 templates/js/translated/build.js:2118 +#: templates/js/translated/build.js:1750 templates/js/translated/build.js:2186 #: templates/js/translated/order.js:85 templates/js/translated/order.js:1782 #: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042 #: templates/js/translated/order.js:2137 templates/js/translated/order.js:2227 -#: templates/js/translated/stock.js:528 templates/js/translated/stock.js:693 -#: templates/js/translated/stock.js:2567 +#: templates/js/translated/stock.js:531 templates/js/translated/stock.js:696 +#: templates/js/translated/stock.js:2453 msgid "Stock Item" msgstr "库存项" -#: build/models.py:1343 +#: build/models.py:1346 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1355 build/serializers.py:188 +#: build/models.py:1358 build/serializers.py:188 #: build/templates/build/build_base.html:82 -#: build/templates/build/detail.html:35 common/models.py:1328 +#: build/templates/build/detail.html:34 common/models.py:1442 #: company/forms.py:42 company/templates/company/supplier_part.html:251 #: order/models.py:836 order/models.py:1265 order/serializers.py:903 #: order/templates/order/order_wizard/match_parts.html:30 #: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144 -#: part/forms.py:160 part/forms.py:176 part/models.py:2749 -#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078 +#: part/forms.py:160 part/forms.py:176 part/models.py:2793 +#: part/templates/part/detail.html:964 part/templates/part/detail.html:1050 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_build_order_base.html:114 @@ -940,36 +958,36 @@ msgstr "源库存项" #: report/templates/report/inventree_test_report_base.html:81 #: report/templates/report/inventree_test_report_base.html:139 #: stock/forms.py:139 stock/serializers.py:293 -#: stock/templates/stock/item_base.html:176 -#: stock/templates/stock/item_base.html:241 -#: stock/templates/stock/item_base.html:249 -#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778 +#: stock/templates/stock/item_base.html:181 +#: stock/templates/stock/item_base.html:246 +#: stock/templates/stock/item_base.html:254 +#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:794 #: templates/js/translated/build.js:376 templates/js/translated/build.js:524 #: templates/js/translated/build.js:715 templates/js/translated/build.js:912 -#: templates/js/translated/build.js:922 templates/js/translated/build.js:1310 -#: templates/js/translated/build.js:1683 -#: templates/js/translated/model_renderers.js:99 +#: templates/js/translated/build.js:922 templates/js/translated/build.js:1328 +#: templates/js/translated/build.js:1751 +#: templates/js/translated/model_renderers.js:108 #: templates/js/translated/order.js:101 templates/js/translated/order.js:1229 #: templates/js/translated/order.js:1783 templates/js/translated/order.js:2056 #: templates/js/translated/order.js:2144 templates/js/translated/order.js:2233 -#: templates/js/translated/order.js:2347 templates/js/translated/part.js:908 -#: templates/js/translated/part.js:1886 templates/js/translated/part.js:2108 -#: templates/js/translated/part.js:2142 templates/js/translated/part.js:2220 -#: templates/js/translated/stock.js:399 templates/js/translated/stock.js:553 -#: templates/js/translated/stock.js:723 templates/js/translated/stock.js:2616 -#: templates/js/translated/stock.js:2718 +#: templates/js/translated/order.js:2347 templates/js/translated/part.js:962 +#: templates/js/translated/part.js:1976 templates/js/translated/part.js:2207 +#: templates/js/translated/part.js:2241 templates/js/translated/part.js:2319 +#: templates/js/translated/stock.js:402 templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:726 templates/js/translated/stock.js:2502 +#: templates/js/translated/stock.js:2587 msgid "Quantity" msgstr "数量" -#: build/models.py:1356 +#: build/models.py:1359 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1364 +#: build/models.py:1367 msgid "Install into" msgstr "安装到" -#: build/models.py:1365 +#: build/models.py:1368 msgid "Destination stock item" msgstr "" @@ -998,8 +1016,8 @@ msgid "Enter quantity for build output" msgstr "输入生产产出数量" #: build/serializers.py:201 build/serializers.py:596 order/models.py:280 -#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836 -#: stock/models.py:471 stock/models.py:1247 stock/serializers.py:305 +#: order/serializers.py:267 part/serializers.py:593 part/serializers.py:1089 +#: stock/models.py:507 stock/models.py:1311 stock/serializers.py:305 msgid "Quantity must be greater than zero" msgstr "" @@ -1013,8 +1031,8 @@ msgstr "" #: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907 #: stock/forms.py:78 stock/serializers.py:314 -#: templates/js/translated/order.js:584 templates/js/translated/stock.js:236 -#: templates/js/translated/stock.js:400 +#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:403 msgid "Serial Numbers" msgstr "序列号" @@ -1030,7 +1048,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:275 stock/api.py:551 +#: build/serializers.py:275 stock/api.py:591 msgid "The following serial numbers already exist" msgstr "" @@ -1040,15 +1058,15 @@ msgstr "" #: build/serializers.py:370 order/serializers.py:253 order/serializers.py:358 #: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788 -#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292 -#: templates/js/translated/barcode.js:384 -#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700 -#: templates/js/translated/build.js:1322 templates/js/translated/order.js:611 +#: stock/serializers.py:1029 stock/templates/stock/item_base.html:297 +#: templates/js/translated/barcode.js:383 +#: templates/js/translated/barcode.js:565 templates/js/translated/build.js:700 +#: templates/js/translated/build.js:1340 templates/js/translated/order.js:611 #: templates/js/translated/order.js:2049 templates/js/translated/order.js:2152 #: templates/js/translated/order.js:2160 templates/js/translated/order.js:2241 -#: templates/js/translated/part.js:180 templates/js/translated/stock.js:529 -#: templates/js/translated/stock.js:694 templates/js/translated/stock.js:901 -#: templates/js/translated/stock.js:1772 templates/js/translated/stock.js:2508 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:532 +#: templates/js/translated/stock.js:697 templates/js/translated/stock.js:904 +#: templates/js/translated/stock.js:1792 templates/js/translated/stock.js:2394 msgid "Location" msgstr "地点" @@ -1057,12 +1075,12 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:377 build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:63 order/models.py:579 -#: order/serializers.py:290 stock/templates/stock/item_base.html:182 -#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2022 +#: build/templates/build/detail.html:62 order/models.py:579 +#: order/serializers.py:290 stock/templates/stock/item_base.html:187 +#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2090 #: templates/js/translated/order.js:716 templates/js/translated/order.js:975 -#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1747 -#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2734 +#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1767 +#: templates/js/translated/stock.js:2471 templates/js/translated/stock.js:2603 msgid "Status" msgstr "状态" @@ -1098,8 +1116,8 @@ msgstr "" msgid "No build outputs have been created for this build order" msgstr "" -#: build/serializers.py:501 build/serializers.py:550 part/models.py:2873 -#: part/models.py:3032 +#: build/serializers.py:501 build/serializers.py:550 part/models.py:2917 +#: part/models.py:3059 msgid "BOM Item" msgstr "" @@ -1231,13 +1249,13 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:132 order/models.py:849 +#: build/templates/build/detail.html:131 order/models.py:849 #: order/templates/order/order_base.html:156 #: order/templates/order/sales_order_base.html:163 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:2062 templates/js/translated/order.js:992 +#: templates/js/translated/build.js:2130 templates/js/translated/order.js:992 #: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475 -#: templates/js/translated/order.js:2410 templates/js/translated/part.js:912 +#: templates/js/translated/order.js:2410 templates/js/translated/part.js:966 msgid "Target Date" msgstr "预计日期" @@ -1250,33 +1268,33 @@ msgstr "此次生产的截止日期为 %(target)s" #: build/templates/build/build_base.html:201 #: order/templates/order/order_base.html:98 #: order/templates/order/sales_order_base.html:93 -#: templates/js/translated/table_filters.js:294 -#: templates/js/translated/table_filters.js:335 -#: templates/js/translated/table_filters.js:365 +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:383 msgid "Overdue" msgstr "逾期" #: build/templates/build/build_base.html:163 -#: build/templates/build/detail.html:68 build/templates/build/detail.html:143 +#: build/templates/build/detail.html:67 build/templates/build/detail.html:142 #: order/templates/order/sales_order_base.html:170 -#: templates/js/translated/build.js:2008 -#: templates/js/translated/table_filters.js:374 +#: templates/js/translated/build.js:2076 +#: templates/js/translated/table_filters.js:392 msgid "Completed" msgstr "已完成" #: build/templates/build/build_base.html:176 -#: build/templates/build/detail.html:95 order/models.py:983 +#: build/templates/build/detail.html:94 order/models.py:983 #: order/models.py:1079 order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:136 #: report/templates/report/inventree_so_report.html:77 -#: stock/templates/stock/item_base.html:286 +#: stock/templates/stock/item_base.html:291 #: templates/js/translated/order.js:1414 msgid "Sales Order" msgstr "销售订单" #: build/templates/build/build_base.html:183 -#: build/templates/build/detail.html:109 +#: build/templates/build/detail.html:108 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "发布者" @@ -1294,184 +1312,188 @@ msgstr "" msgid "Are you sure you wish to cancel this build?" msgstr "是否确定取消生产?" -#: build/templates/build/detail.html:16 +#: build/templates/build/delete_build.html:5 +msgid "Are you sure you want to delete this build?" +msgstr "" + +#: build/templates/build/detail.html:15 msgid "Build Details" msgstr "生产详情" -#: build/templates/build/detail.html:39 +#: build/templates/build/detail.html:38 msgid "Stock Source" msgstr "" -#: build/templates/build/detail.html:44 +#: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133 +#: build/templates/build/detail.html:49 order/models.py:934 stock/forms.py:133 #: templates/js/translated/order.js:717 templates/js/translated/order.js:1333 msgid "Destination" msgstr "" -#: build/templates/build/detail.html:57 +#: build/templates/build/detail.html:56 msgid "Destination location not specified" msgstr "" -#: build/templates/build/detail.html:74 templates/js/translated/build.js:930 +#: build/templates/build/detail.html:73 templates/js/translated/build.js:930 msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:81 -#: stock/templates/stock/item_base.html:310 -#: templates/js/translated/stock.js:1761 templates/js/translated/stock.js:2741 +#: build/templates/build/detail.html:80 +#: stock/templates/stock/item_base.html:315 +#: templates/js/translated/model_renderers.js:112 +#: templates/js/translated/stock.js:970 templates/js/translated/stock.js:1781 +#: templates/js/translated/stock.js:2610 #: templates/js/translated/table_filters.js:151 -#: templates/js/translated/table_filters.js:238 +#: templates/js/translated/table_filters.js:242 msgid "Batch" msgstr "" -#: build/templates/build/detail.html:127 +#: build/templates/build/detail.html:126 #: order/templates/order/order_base.html:143 #: order/templates/order/sales_order_base.html:157 -#: templates/js/translated/build.js:2030 +#: templates/js/translated/build.js:2098 msgid "Created" msgstr "已创建" -#: build/templates/build/detail.html:138 +#: build/templates/build/detail.html:137 msgid "No target date set" msgstr "无预计日期" -#: build/templates/build/detail.html:147 +#: build/templates/build/detail.html:146 msgid "Build not complete" msgstr "生产未完成" -#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17 +#: build/templates/build/detail.html:157 build/templates/build/sidebar.html:17 msgid "Child Build Orders" msgstr "子生产订单" -#: build/templates/build/detail.html:173 +#: build/templates/build/detail.html:172 msgid "Allocate Stock to Build" msgstr "为生产分配库存" -#: build/templates/build/detail.html:177 templates/js/translated/build.js:1499 +#: build/templates/build/detail.html:176 templates/js/translated/build.js:1564 msgid "Unallocate stock" msgstr "未分配库存" -#: build/templates/build/detail.html:178 +#: build/templates/build/detail.html:177 msgid "Unallocate Stock" msgstr "未分配库存" -#: build/templates/build/detail.html:180 +#: build/templates/build/detail.html:179 msgid "Automatically allocate stock to build" msgstr "" -#: build/templates/build/detail.html:181 +#: build/templates/build/detail.html:180 msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:183 +#: build/templates/build/detail.html:182 msgid "Manually allocate stock to build" msgstr "" -#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8 +#: build/templates/build/detail.html:183 build/templates/build/sidebar.html:8 msgid "Allocate Stock" msgstr "分配库存" -#: build/templates/build/detail.html:187 +#: build/templates/build/detail.html:186 msgid "Order required parts" msgstr "订单所需部件" -#: build/templates/build/detail.html:188 -#: company/templates/company/detail.html:38 -#: company/templates/company/detail.html:85 order/views.py:463 +#: build/templates/build/detail.html:187 +#: company/templates/company/detail.html:37 +#: company/templates/company/detail.html:84 order/views.py:463 #: part/templates/part/category.html:174 msgid "Order Parts" msgstr "订购商品" -#: build/templates/build/detail.html:200 +#: build/templates/build/detail.html:199 msgid "Untracked stock has been fully allocated for this Build Order" msgstr "未跟踪的库存已完全分配给此生产订单" -#: build/templates/build/detail.html:204 +#: build/templates/build/detail.html:203 msgid "Untracked stock has not been fully allocated for this Build Order" msgstr "未跟踪的库存尚未完全分配给此生产订单" -#: build/templates/build/detail.html:211 +#: build/templates/build/detail.html:210 msgid "Allocate selected items" msgstr "" -#: build/templates/build/detail.html:221 +#: build/templates/build/detail.html:220 msgid "This Build Order does not have any associated untracked BOM items" msgstr "" -#: build/templates/build/detail.html:230 +#: build/templates/build/detail.html:229 msgid "Incomplete Build Outputs" msgstr "未完成的生产产出" -#: build/templates/build/detail.html:234 +#: build/templates/build/detail.html:233 msgid "Create new build output" msgstr "" -#: build/templates/build/detail.html:235 +#: build/templates/build/detail.html:234 msgid "New Build Output" msgstr "" -#: build/templates/build/detail.html:249 +#: build/templates/build/detail.html:248 msgid "Output Actions" msgstr "" -#: build/templates/build/detail.html:253 +#: build/templates/build/detail.html:252 msgid "Complete selected build outputs" msgstr "" -#: build/templates/build/detail.html:254 +#: build/templates/build/detail.html:253 msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:256 +#: build/templates/build/detail.html:255 msgid "Delete selected build outputs" msgstr "" -#: build/templates/build/detail.html:257 +#: build/templates/build/detail.html:256 msgid "Delete outputs" msgstr "" -#: build/templates/build/detail.html:273 +#: build/templates/build/detail.html:263 +#: stock/templates/stock/location.html:188 templates/stock_table.html:27 +msgid "Printing Actions" +msgstr "打印操作" + +#: build/templates/build/detail.html:267 build/templates/build/detail.html:268 +#: stock/templates/stock/location.html:192 templates/stock_table.html:31 +msgid "Print labels" +msgstr "打印标签" + +#: build/templates/build/detail.html:285 msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19 +#: build/templates/build/detail.html:297 build/templates/build/sidebar.html:19 #: order/templates/order/po_sidebar.html:9 -#: order/templates/order/purchase_order_detail.html:60 -#: order/templates/order/sales_order_detail.html:107 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:215 -#: part/templates/part/part_sidebar.html:58 stock/templates/stock/item.html:122 +#: order/templates/order/purchase_order_detail.html:59 +#: order/templates/order/sales_order_detail.html:106 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:205 +#: part/templates/part/part_sidebar.html:57 stock/templates/stock/item.html:122 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "附件" -#: build/templates/build/detail.html:301 +#: build/templates/build/detail.html:312 msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:305 build/templates/build/detail.html:389 -#: company/templates/company/detail.html:190 -#: company/templates/company/detail.html:217 -#: order/templates/order/purchase_order_detail.html:80 -#: order/templates/order/purchase_order_detail.html:108 -#: order/templates/order/sales_order_detail.html:127 -#: order/templates/order/sales_order_detail.html:186 -#: part/templates/part/detail.html:143 stock/templates/stock/item.html:142 -#: stock/templates/stock/item.html:247 -msgid "Edit Notes" -msgstr "编辑备注" - -#: build/templates/build/detail.html:526 +#: build/templates/build/detail.html:548 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:527 +#: build/templates/build/detail.html:549 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:321 +#: build/templates/build/index.html:18 part/templates/part/detail.html:311 msgid "New Build Order" msgstr "新建生产订单" @@ -1544,849 +1566,937 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:356 +#: common/models.py:381 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:358 +#: common/models.py:383 msgid "Settings value" msgstr "" -#: common/models.py:392 +#: common/models.py:417 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:412 +#: common/models.py:437 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:423 +#: common/models.py:448 msgid "Value must be an integer value" msgstr "" -#: common/models.py:446 +#: common/models.py:490 msgid "Key string must be unique" msgstr "" -#: common/models.py:592 +#: common/models.py:637 msgid "No group" msgstr "" -#: common/models.py:634 +#: common/models.py:679 msgid "Restart required" msgstr "" -#: common/models.py:635 +#: common/models.py:680 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:642 -msgid "InvenTree Instance Name" +#: common/models.py:687 +msgid "Server Instance Name" msgstr "" -#: common/models.py:644 +#: common/models.py:689 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:648 +#: common/models.py:693 msgid "Use instance name" msgstr "" -#: common/models.py:649 +#: common/models.py:694 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:655 company/models.py:100 company/models.py:101 -msgid "Company name" -msgstr "公司名称" - -#: common/models.py:656 -msgid "Internal company name" -msgstr "内部公司名称" - -#: common/models.py:661 -msgid "Base URL" -msgstr "" - -#: common/models.py:662 -msgid "Base URL for server instance" -msgstr "" - -#: common/models.py:668 -msgid "Default Currency" -msgstr "" - -#: common/models.py:669 -msgid "Default currency" -msgstr "" - -#: common/models.py:675 -msgid "Download from URL" -msgstr "" - -#: common/models.py:676 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:682 templates/InvenTree/settings/sidebar.html:31 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:683 -msgid "Enable barcode scanner support" -msgstr "启用条形码扫描支持" - -#: common/models.py:689 -msgid "IPN Regex" -msgstr "" - -#: common/models.py:690 -msgid "Regular expression pattern for matching Part IPN" -msgstr "" - -#: common/models.py:694 -msgid "Allow Duplicate IPN" -msgstr "" - -#: common/models.py:695 -msgid "Allow multiple parts to share the same IPN" +#: common/models.py:700 +msgid "Restrict showing `about`" msgstr "" #: common/models.py:701 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:707 company/models.py:100 company/models.py:101 +msgid "Company name" +msgstr "公司名称" + +#: common/models.py:708 +msgid "Internal company name" +msgstr "内部公司名称" + +#: common/models.py:713 +msgid "Base URL" +msgstr "" + +#: common/models.py:714 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:720 +msgid "Default Currency" +msgstr "" + +#: common/models.py:721 +msgid "Default currency" +msgstr "" + +#: common/models.py:727 +msgid "Download from URL" +msgstr "" + +#: common/models.py:728 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:734 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:735 +msgid "Enable barcode scanner support" +msgstr "启用条形码扫描支持" + +#: common/models.py:741 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:742 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:746 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:747 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:753 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:702 +#: common/models.py:754 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:708 +#: common/models.py:760 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:709 +#: common/models.py:761 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:715 +#: common/models.py:767 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:716 +#: common/models.py:768 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:722 +#: common/models.py:774 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:723 +#: common/models.py:775 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:729 +#: common/models.py:781 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:730 +#: common/models.py:782 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:736 part/models.py:2568 report/models.py:187 +#: common/models.py:788 part/models.py:2598 report/models.py:187 #: templates/js/translated/table_filters.js:38 -#: templates/js/translated/table_filters.js:426 +#: templates/js/translated/table_filters.js:444 msgid "Template" msgstr "模板" -#: common/models.py:737 +#: common/models.py:789 msgid "Parts are templates by default" msgstr "" -#: common/models.py:743 part/models.py:959 templates/js/translated/bom.js:1305 +#: common/models.py:795 part/models.py:964 templates/js/translated/bom.js:1343 #: templates/js/translated/table_filters.js:168 -#: templates/js/translated/table_filters.js:438 +#: templates/js/translated/table_filters.js:460 msgid "Assembly" msgstr "组装" -#: common/models.py:744 +#: common/models.py:796 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:750 part/models.py:965 -#: templates/js/translated/table_filters.js:442 +#: common/models.py:802 part/models.py:970 +#: templates/js/translated/table_filters.js:464 msgid "Component" msgstr "组件" -#: common/models.py:751 +#: common/models.py:803 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:757 part/models.py:976 +#: common/models.py:809 part/models.py:981 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:758 +#: common/models.py:810 msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:764 part/models.py:981 -#: templates/js/translated/table_filters.js:450 +#: common/models.py:816 part/models.py:986 +#: templates/js/translated/table_filters.js:472 msgid "Salable" msgstr "可销售" -#: common/models.py:765 +#: common/models.py:817 msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:771 part/models.py:971 +#: common/models.py:823 part/models.py:976 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:100 -#: templates/js/translated/table_filters.js:454 +#: templates/js/translated/table_filters.js:476 msgid "Trackable" msgstr "可追踪" -#: common/models.py:772 +#: common/models.py:824 msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:778 part/models.py:991 -#: part/templates/part/part_base.html:147 +#: common/models.py:830 part/models.py:996 +#: part/templates/part/part_base.html:151 #: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "虚拟" -#: common/models.py:779 +#: common/models.py:831 msgid "Parts are virtual by default" msgstr "商品默认是虚拟的" -#: common/models.py:785 +#: common/models.py:837 msgid "Show Import in Views" msgstr "视图中显示导入" -#: common/models.py:786 +#: common/models.py:838 msgid "Display the import wizard in some part views" msgstr "在一些商品视图中显示导入向导" -#: common/models.py:792 +#: common/models.py:844 msgid "Show Price in Forms" msgstr "在表格中显示价格" -#: common/models.py:793 +#: common/models.py:845 msgid "Display part price in some forms" msgstr "以某些表格显示商品价格" -#: common/models.py:804 +#: common/models.py:856 msgid "Show Price in BOM" msgstr "" -#: common/models.py:805 +#: common/models.py:857 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:816 +#: common/models.py:868 msgid "Show Price History" msgstr "" -#: common/models.py:817 +#: common/models.py:869 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:823 +#: common/models.py:875 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:824 +#: common/models.py:876 msgid "Display related parts for a part" msgstr "" -#: common/models.py:830 +#: common/models.py:882 msgid "Create initial stock" msgstr "创建初始库存" -#: common/models.py:831 +#: common/models.py:883 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:837 +#: common/models.py:889 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:838 +#: common/models.py:890 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:844 +#: common/models.py:896 msgid "Internal Price as BOM-Price" msgstr "内部价格为BOM价格" -#: common/models.py:845 +#: common/models.py:897 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "在 BOM价格计算中使用内部价格(如设置)" -#: common/models.py:851 +#: common/models.py:903 msgid "Part Name Display Format" msgstr "" -#: common/models.py:852 +#: common/models.py:904 msgid "Format to display the part name" msgstr "" -#: common/models.py:859 +#: common/models.py:911 msgid "Enable Reports" msgstr "" -#: common/models.py:860 +#: common/models.py:912 msgid "Enable generation of reports" msgstr "" -#: common/models.py:866 templates/stats.html:25 +#: common/models.py:918 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:867 +#: common/models.py:919 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:873 +#: common/models.py:925 msgid "Page Size" msgstr "页面大小" -#: common/models.py:874 +#: common/models.py:926 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:884 +#: common/models.py:936 msgid "Test Reports" msgstr "测试报表" -#: common/models.py:885 +#: common/models.py:937 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:891 -msgid "Stock Expiry" -msgstr "库存到期" - -#: common/models.py:892 -msgid "Enable stock expiry functionality" -msgstr "启用库存到期功能" - -#: common/models.py:898 -msgid "Sell Expired Stock" -msgstr "销售过期库存" - -#: common/models.py:899 -msgid "Allow sale of expired stock" -msgstr "允许销售过期库存" - -#: common/models.py:905 -msgid "Stock Stale Time" -msgstr "" - -#: common/models.py:906 -msgid "Number of days stock items are considered stale before expiring" -msgstr "" - -#: common/models.py:908 -msgid "days" -msgstr "天" - -#: common/models.py:913 -msgid "Build Expired Stock" -msgstr "" - -#: common/models.py:914 -msgid "Allow building with expired stock" -msgstr "" - -#: common/models.py:920 -msgid "Stock Ownership Control" -msgstr "库存所有权控制" - -#: common/models.py:921 -msgid "Enable ownership control over stock locations and items" -msgstr "" - -#: common/models.py:927 -msgid "Build Order Reference Prefix" -msgstr "生产订单参考前缀" - -#: common/models.py:928 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:933 -msgid "Build Order Reference Regex" -msgstr "" - -#: common/models.py:934 -msgid "Regular expression pattern for matching build order reference" -msgstr "" - -#: common/models.py:938 -msgid "Sales Order Reference Prefix" -msgstr "" - -#: common/models.py:939 -msgid "Prefix value for sales order reference" +#: common/models.py:943 +msgid "Batch Code Template" msgstr "" #: common/models.py:944 -msgid "Purchase Order Reference Prefix" +msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:945 -msgid "Prefix value for purchase order reference" -msgstr "" +#: common/models.py:949 +msgid "Stock Expiry" +msgstr "库存到期" -#: common/models.py:951 -msgid "Enable password forgot" -msgstr "" +#: common/models.py:950 +msgid "Enable stock expiry functionality" +msgstr "启用库存到期功能" -#: common/models.py:952 -msgid "Enable password forgot function on the login pages" -msgstr "" +#: common/models.py:956 +msgid "Sell Expired Stock" +msgstr "销售过期库存" #: common/models.py:957 -msgid "Enable registration" -msgstr "" - -#: common/models.py:958 -msgid "Enable self-registration for users on the login pages" -msgstr "" +msgid "Allow sale of expired stock" +msgstr "允许销售过期库存" #: common/models.py:963 -msgid "Enable SSO" +msgid "Stock Stale Time" msgstr "" #: common/models.py:964 -msgid "Enable SSO on the login pages" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:969 -msgid "Email required" +#: common/models.py:966 +msgid "days" +msgstr "天" + +#: common/models.py:971 +msgid "Build Expired Stock" msgstr "" -#: common/models.py:970 -msgid "Require user to supply mail on signup" +#: common/models.py:972 +msgid "Allow building with expired stock" msgstr "" -#: common/models.py:975 -msgid "Auto-fill SSO users" +#: common/models.py:978 +msgid "Stock Ownership Control" +msgstr "库存所有权控制" + +#: common/models.py:979 +msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:976 -msgid "Automatically fill out user-details from SSO account-data" +#: common/models.py:985 +msgid "Build Order Reference Prefix" +msgstr "生产订单参考前缀" + +#: common/models.py:986 +msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:981 -msgid "Mail twice" +#: common/models.py:991 +msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:982 -msgid "On signup ask users twice for their mail" +#: common/models.py:992 +msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:987 -msgid "Password twice" +#: common/models.py:996 +msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:988 -msgid "On signup ask users twice for their password" +#: common/models.py:997 +msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:993 -msgid "Group on signup" +#: common/models.py:1002 +msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:994 -msgid "Group to which new users are assigned on registration" +#: common/models.py:1003 +msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:999 -msgid "Enforce MFA" +#: common/models.py:1009 +msgid "Enable password forgot" msgstr "" -#: common/models.py:1000 -msgid "Users must use multifactor security." -msgstr "" - -#: common/models.py:1007 -msgid "Enable URL integration" -msgstr "" - -#: common/models.py:1008 -msgid "Enable plugins to add URL routes" -msgstr "" - -#: common/models.py:1014 -msgid "Enable navigation integration" +#: common/models.py:1010 +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1015 -msgid "Enable plugins to integrate into navigation" +msgid "Enable registration" +msgstr "" + +#: common/models.py:1016 +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1021 -msgid "Enable app integration" +msgid "Enable SSO" msgstr "" #: common/models.py:1022 -msgid "Enable plugins to add apps" +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1027 +msgid "Email required" msgstr "" #: common/models.py:1028 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:1033 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:1034 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:1039 +msgid "Mail twice" +msgstr "" + +#: common/models.py:1040 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:1045 +msgid "Password twice" +msgstr "" + +#: common/models.py:1046 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:1051 +msgid "Group on signup" +msgstr "" + +#: common/models.py:1052 +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1057 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:1058 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1064 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1065 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1072 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:1073 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:1079 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:1080 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:1086 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:1087 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:1093 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1029 +#: common/models.py:1094 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1035 +#: common/models.py:1100 msgid "Enable event integration" msgstr "" -#: common/models.py:1036 +#: common/models.py:1101 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1051 common/models.py:1281 +#: common/models.py:1116 common/models.py:1402 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1082 +#: common/models.py:1147 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1083 +#: common/models.py:1148 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1088 +#: common/models.py:1153 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1089 +#: common/models.py:1154 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1094 +#: common/models.py:1159 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1095 +#: common/models.py:1160 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1100 +#: common/models.py:1165 msgid "Recent Part Count" msgstr "" -#: common/models.py:1101 +#: common/models.py:1166 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1107 +#: common/models.py:1172 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1108 +#: common/models.py:1173 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1113 +#: common/models.py:1178 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1114 +#: common/models.py:1179 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1119 +#: common/models.py:1184 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1120 +#: common/models.py:1185 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1125 +#: common/models.py:1190 msgid "Show low stock" msgstr "" -#: common/models.py:1126 +#: common/models.py:1191 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1131 +#: common/models.py:1196 msgid "Show depleted stock" msgstr "" -#: common/models.py:1132 +#: common/models.py:1197 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1137 +#: common/models.py:1202 msgid "Show needed stock" msgstr "" -#: common/models.py:1138 +#: common/models.py:1203 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1143 +#: common/models.py:1208 msgid "Show expired stock" msgstr "" -#: common/models.py:1144 +#: common/models.py:1209 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1149 +#: common/models.py:1214 msgid "Show stale stock" msgstr "" -#: common/models.py:1150 +#: common/models.py:1215 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1155 +#: common/models.py:1220 msgid "Show pending builds" msgstr "" -#: common/models.py:1156 +#: common/models.py:1221 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1161 +#: common/models.py:1226 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:1162 +#: common/models.py:1227 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:1167 +#: common/models.py:1232 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1168 +#: common/models.py:1233 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1173 +#: common/models.py:1238 msgid "Show overdue POs" msgstr "" -#: common/models.py:1174 +#: common/models.py:1239 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1179 +#: common/models.py:1244 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1180 +#: common/models.py:1245 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1185 +#: common/models.py:1250 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1251 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1192 -msgid "Inline label display" -msgstr "内嵌标签显示" - -#: common/models.py:1193 -msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" - -#: common/models.py:1199 -msgid "Inline report display" +#: common/models.py:1257 +msgid "Enable email notifications" msgstr "" -#: common/models.py:1200 -msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" - -#: common/models.py:1206 -msgid "Search Preview Results" -msgstr "搜索预览结果" - -#: common/models.py:1207 -msgid "Number of results to show in search preview window" -msgstr "搜索预览窗口中显示的结果数" - -#: common/models.py:1213 -msgid "Search Show Stock" -msgstr "" - -#: common/models.py:1214 -msgid "Display stock levels in search preview window" -msgstr "" - -#: common/models.py:1220 -msgid "Hide Inactive Parts" -msgstr "" - -#: common/models.py:1221 -msgid "Hide inactive parts in search preview window" -msgstr "" - -#: common/models.py:1227 -msgid "Show Quantity in Forms" -msgstr "在表格中显示数量" - -#: common/models.py:1228 -msgid "Display available part quantity in some forms" -msgstr "在某些表格中显示可用的商品数量" - -#: common/models.py:1234 -msgid "Escape Key Closes Forms" -msgstr "" - -#: common/models.py:1235 -msgid "Use the escape key to close modal forms" -msgstr "" - -#: common/models.py:1241 -msgid "Fixed Navbar" -msgstr "" - -#: common/models.py:1242 -msgid "InvenTree navbar position is fixed to the top of the screen" -msgstr "" - -#: common/models.py:1248 -msgid "Date Format" -msgstr "" - -#: common/models.py:1249 -msgid "Preferred format for displaying dates" -msgstr "" - -#: common/models.py:1263 part/templates/part/detail.html:40 -msgid "Part Scheduling" +#: common/models.py:1258 +msgid "Allow sending of emails for event notifications" msgstr "" #: common/models.py:1264 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1265 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1271 +msgid "Inline label display" +msgstr "内嵌标签显示" + +#: common/models.py:1272 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" + +#: common/models.py:1278 +msgid "Inline report display" +msgstr "" + +#: common/models.py:1279 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" + +#: common/models.py:1285 +msgid "Search Parts" +msgstr "" + +#: common/models.py:1286 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:1292 +msgid "Search Categories" +msgstr "" + +#: common/models.py:1293 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:1299 +msgid "Search Stock" +msgstr "" + +#: common/models.py:1300 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:1306 +msgid "Search Locations" +msgstr "" + +#: common/models.py:1307 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:1313 +msgid "Search Companies" +msgstr "" + +#: common/models.py:1314 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:1320 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:1321 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:1327 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:1328 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:1334 +msgid "Search Preview Results" +msgstr "搜索预览结果" + +#: common/models.py:1335 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:1341 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:1342 +msgid "Hide inactive parts in search preview window" +msgstr "" + +#: common/models.py:1348 +msgid "Show Quantity in Forms" +msgstr "在表格中显示数量" + +#: common/models.py:1349 +msgid "Display available part quantity in some forms" +msgstr "在某些表格中显示可用的商品数量" + +#: common/models.py:1355 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:1356 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:1362 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:1363 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:1369 +msgid "Date Format" +msgstr "" + +#: common/models.py:1370 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:1384 part/templates/part/detail.html:39 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:1385 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1329 company/forms.py:43 +#: common/models.py:1443 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1336 company/serializers.py:264 +#: common/models.py:1450 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:939 templates/js/translated/part.js:1891 +#: templates/js/translated/part.js:993 templates/js/translated/part.js:1981 msgid "Price" msgstr "价格" -#: common/models.py:1337 +#: common/models.py:1451 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1494 common/models.py:1633 +#: common/models.py:1608 common/models.py:1747 msgid "Endpoint" msgstr "" -#: common/models.py:1495 +#: common/models.py:1609 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1504 +#: common/models.py:1618 msgid "Name for this webhook" msgstr "" -#: common/models.py:1509 part/models.py:986 plugin/models.py:46 +#: common/models.py:1623 part/models.py:991 plugin/models.py:46 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:96 -#: templates/js/translated/table_filters.js:290 -#: templates/js/translated/table_filters.js:421 +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:439 msgid "Active" msgstr "" -#: common/models.py:1510 +#: common/models.py:1624 msgid "Is this webhook active" msgstr "" -#: common/models.py:1524 +#: common/models.py:1638 msgid "Token" msgstr "" -#: common/models.py:1525 +#: common/models.py:1639 msgid "Token for access" msgstr "" -#: common/models.py:1532 +#: common/models.py:1646 msgid "Secret" msgstr "" -#: common/models.py:1533 +#: common/models.py:1647 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:1600 +#: common/models.py:1714 msgid "Message ID" msgstr "" -#: common/models.py:1601 +#: common/models.py:1715 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:1609 +#: common/models.py:1723 msgid "Host" msgstr "" -#: common/models.py:1610 +#: common/models.py:1724 msgid "Host from which this message was received" msgstr "" -#: common/models.py:1617 +#: common/models.py:1731 msgid "Header" msgstr "" -#: common/models.py:1618 +#: common/models.py:1732 msgid "Header of this message" msgstr "" -#: common/models.py:1624 +#: common/models.py:1738 msgid "Body" msgstr "" -#: common/models.py:1625 +#: common/models.py:1739 msgid "Body of this message" msgstr "" -#: common/models.py:1634 +#: common/models.py:1748 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:1639 +#: common/models.py:1753 msgid "Worked on" msgstr "" -#: common/models.py:1640 +#: common/models.py:1754 msgid "Was the work on this message finished?" msgstr "" #: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 -#: order/templates/order/purchase_order_detail.html:24 order/views.py:243 -#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208 -#: templates/patterns/wizard/upload.html:35 +#: order/templates/order/purchase_order_detail.html:23 order/views.py:243 +#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:206 +#: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "上传文件" #: common/views.py:94 order/views.py:244 #: part/templates/part/import_wizard/ajax_match_fields.html:45 -#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:207 #: templates/patterns/wizard/match_fields.html:51 msgid "Match Fields" msgstr "匹配字段" @@ -2409,7 +2519,7 @@ msgstr "已导入商品" #: part/templates/part/import_wizard/match_references.html:19 #: part/templates/part/import_wizard/part_upload.html:45 #: templates/patterns/wizard/match_fields.html:26 -#: templates/patterns/wizard/upload.html:33 +#: templates/patterns/wizard/upload.html:35 msgid "Previous Step" msgstr "" @@ -2477,7 +2587,7 @@ msgstr "" msgid "Link to external company information" msgstr "链接到外部公司信息" -#: company/models.py:139 part/models.py:878 +#: company/models.py:139 part/models.py:883 msgid "Image" msgstr "图片" @@ -2506,7 +2616,8 @@ msgid "Does this company manufacture parts?" msgstr "该公司制造商品吗?" #: company/models.py:152 company/serializers.py:270 -#: company/templates/company/company_base.html:103 stock/serializers.py:179 +#: company/templates/company/company_base.html:103 part/serializers.py:156 +#: part/serializers.py:188 stock/serializers.py:179 msgid "Currency" msgstr "货币" @@ -2514,8 +2625,8 @@ msgstr "货币" msgid "Default currency used for this company" msgstr "该公司使用的默认货币" -#: company/models.py:320 company/models.py:535 stock/models.py:575 -#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541 +#: company/models.py:320 company/models.py:535 stock/models.py:611 +#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:541 msgid "Base Part" msgstr "" @@ -2524,13 +2635,13 @@ msgid "Select part" msgstr "选择商品" #: company/models.py:335 company/templates/company/company_base.html:73 -#: company/templates/company/manufacturer_part.html:91 +#: company/templates/company/manufacturer_part.html:92 #: company/templates/company/supplier_part.html:97 -#: stock/templates/stock/item_base.html:359 +#: stock/templates/stock/item_base.html:364 #: templates/js/translated/company.js:333 #: templates/js/translated/company.js:517 #: templates/js/translated/company.js:800 templates/js/translated/part.js:235 -#: templates/js/translated/table_filters.js:393 +#: templates/js/translated/table_filters.js:411 msgid "Manufacturer" msgstr "制造商" @@ -2538,11 +2649,11 @@ msgstr "制造商" msgid "Select manufacturer" msgstr "选择制造商" -#: company/models.py:342 company/templates/company/manufacturer_part.html:96 +#: company/models.py:342 company/templates/company/manufacturer_part.html:97 #: company/templates/company/supplier_part.html:105 #: templates/js/translated/company.js:533 #: templates/js/translated/company.js:818 templates/js/translated/order.js:1211 -#: templates/js/translated/part.js:246 templates/js/translated/part.js:897 +#: templates/js/translated/part.js:246 templates/js/translated/part.js:951 msgid "MPN" msgstr "MPN" @@ -2559,9 +2670,9 @@ msgid "Manufacturer part description" msgstr "制造商商品描述" #: company/models.py:409 company/models.py:558 -#: company/templates/company/manufacturer_part.html:6 -#: company/templates/company/manufacturer_part.html:23 -#: stock/templates/stock/item_base.html:369 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:374 msgid "Manufacturer Part" msgstr "制造商商品" @@ -2571,8 +2682,8 @@ msgstr "参数名称" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2131 templates/js/translated/company.js:647 -#: templates/js/translated/part.js:717 templates/js/translated/stock.js:1296 +#: stock/models.py:2195 templates/js/translated/company.js:647 +#: templates/js/translated/part.js:771 templates/js/translated/stock.js:1303 msgid "Value" msgstr "数值" @@ -2580,10 +2691,10 @@ msgstr "数值" msgid "Parameter value" msgstr "参数值" -#: company/models.py:429 part/models.py:953 part/models.py:2536 -#: part/templates/part/part_base.html:304 -#: templates/InvenTree/settings/settings.html:324 -#: templates/js/translated/company.js:653 templates/js/translated/part.js:723 +#: company/models.py:429 part/models.py:958 part/models.py:2566 +#: part/templates/part/part_base.html:280 +#: templates/InvenTree/settings/settings.html:325 +#: templates/js/translated/company.js:653 templates/js/translated/part.js:777 msgid "Units" msgstr "单位" @@ -2599,11 +2710,11 @@ msgstr "" #: company/templates/company/supplier_part.html:87 order/models.py:227 #: order/templates/order/order_base.html:112 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237 -#: part/bom.py:265 stock/templates/stock/item_base.html:376 +#: part/bom.py:265 stock/templates/stock/item_base.html:381 #: templates/js/translated/company.js:337 #: templates/js/translated/company.js:774 templates/js/translated/order.js:958 -#: templates/js/translated/part.js:216 templates/js/translated/part.js:865 -#: templates/js/translated/table_filters.js:397 +#: templates/js/translated/part.js:216 templates/js/translated/part.js:919 +#: templates/js/translated/table_filters.js:415 msgid "Supplier" msgstr "供应商" @@ -2613,7 +2724,7 @@ msgstr "选择供应商" #: company/models.py:551 company/templates/company/supplier_part.html:91 #: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198 -#: templates/js/translated/part.js:227 templates/js/translated/part.js:883 +#: templates/js/translated/part.js:227 templates/js/translated/part.js:937 msgid "SKU" msgstr "SKU" @@ -2634,23 +2745,23 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:576 company/templates/company/supplier_part.html:119 -#: part/models.py:2761 part/templates/part/upload_bom.html:59 +#: part/models.py:2805 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409 msgid "Note" msgstr "备注" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "base cost" msgstr "" -#: company/models.py:580 part/models.py:1846 +#: company/models.py:580 part/models.py:1876 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" #: company/models.py:582 company/templates/company/supplier_part.html:112 -#: stock/models.py:599 stock/templates/stock/item_base.html:317 -#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1896 +#: stock/models.py:635 stock/templates/stock/item_base.html:322 +#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1917 msgid "Packaging" msgstr "打包" @@ -2658,7 +2769,7 @@ msgstr "打包" msgid "Part packaging" msgstr "商品打包" -#: company/models.py:584 part/models.py:1848 +#: company/models.py:584 part/models.py:1878 msgid "multiple" msgstr "" @@ -2722,12 +2833,12 @@ msgid "Download image from URL" msgstr "从 URL 下载图片" #: company/templates/company/company_base.html:83 order/models.py:574 -#: order/templates/order/sales_order_base.html:115 stock/models.py:618 -#: stock/models.py:619 stock/serializers.py:683 -#: stock/templates/stock/item_base.html:269 +#: order/templates/order/sales_order_base.html:115 stock/models.py:654 +#: stock/models.py:655 stock/serializers.py:683 +#: stock/templates/stock/item_base.html:274 #: templates/js/translated/company.js:329 templates/js/translated/order.js:1436 -#: templates/js/translated/stock.js:2549 -#: templates/js/translated/table_filters.js:401 +#: templates/js/translated/stock.js:2435 +#: templates/js/translated/table_filters.js:419 msgid "Customer" msgstr "客户" @@ -2740,131 +2851,133 @@ msgid "Phone" msgstr "电话" #: company/templates/company/company_base.html:205 -#: part/templates/part/part_base.html:487 +#: part/templates/part/part_base.html:465 msgid "Upload Image" msgstr "上传图片" -#: company/templates/company/detail.html:15 +#: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_sidebar.html:7 #: templates/InvenTree/search.html:118 msgid "Supplier Parts" msgstr "供应商商品" -#: company/templates/company/detail.html:19 +#: company/templates/company/detail.html:18 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" msgstr "创建新的供应商商品" -#: company/templates/company/detail.html:20 -#: company/templates/company/manufacturer_part.html:118 -#: part/templates/part/detail.html:362 +#: company/templates/company/detail.html:19 +#: company/templates/company/manufacturer_part.html:119 +#: part/templates/part/detail.html:352 msgid "New Supplier Part" msgstr "新建供应商商品" -#: company/templates/company/detail.html:32 -#: company/templates/company/detail.html:79 -#: company/templates/company/manufacturer_part.html:127 -#: company/templates/company/manufacturer_part.html:156 -#: part/templates/part/category.html:168 part/templates/part/detail.html:371 -#: part/templates/part/detail.html:400 +#: company/templates/company/detail.html:31 +#: company/templates/company/detail.html:78 +#: company/templates/company/manufacturer_part.html:128 +#: company/templates/company/manufacturer_part.html:157 +#: part/templates/part/category.html:168 part/templates/part/detail.html:361 +#: part/templates/part/detail.html:390 msgid "Options" msgstr "选项" -#: company/templates/company/detail.html:37 -#: company/templates/company/detail.html:84 +#: company/templates/company/detail.html:36 +#: company/templates/company/detail.html:83 #: part/templates/part/category.html:174 msgid "Order parts" msgstr "订购商品" -#: company/templates/company/detail.html:42 -#: company/templates/company/detail.html:89 +#: company/templates/company/detail.html:41 +#: company/templates/company/detail.html:88 msgid "Delete parts" msgstr "删除商品" -#: company/templates/company/detail.html:43 -#: company/templates/company/detail.html:90 +#: company/templates/company/detail.html:42 +#: company/templates/company/detail.html:89 msgid "Delete Parts" msgstr "删除商品" -#: company/templates/company/detail.html:62 templates/InvenTree/search.html:103 +#: company/templates/company/detail.html:61 templates/InvenTree/search.html:103 msgid "Manufacturer Parts" msgstr "制造商商品" -#: company/templates/company/detail.html:66 +#: company/templates/company/detail.html:65 msgid "Create new manufacturer part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:390 +#: company/templates/company/detail.html:66 part/templates/part/detail.html:380 msgid "New Manufacturer Part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:107 +#: company/templates/company/detail.html:106 msgid "Supplier Stock" msgstr "供货商库存" -#: company/templates/company/detail.html:117 +#: company/templates/company/detail.html:116 #: company/templates/company/sidebar.html:12 #: company/templates/company/supplier_part_sidebar.html:7 #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:78 part/templates/part/part_sidebar.html:38 +#: part/templates/part/detail.html:77 part/templates/part/part_sidebar.html:37 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197 -#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/search.js:173 templates/navbar.html:49 #: users/models.py:45 msgid "Purchase Orders" msgstr "采购订单" -#: company/templates/company/detail.html:121 +#: company/templates/company/detail.html:120 #: order/templates/order/purchase_orders.html:17 msgid "Create new purchase order" msgstr "新建采购订单" -#: company/templates/company/detail.html:122 +#: company/templates/company/detail.html:121 #: order/templates/order/purchase_orders.html:18 msgid "New Purchase Order" msgstr "新建采购订单" -#: company/templates/company/detail.html:143 +#: company/templates/company/detail.html:142 #: company/templates/company/sidebar.html:20 #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:101 part/templates/part/part_sidebar.html:42 +#: part/templates/part/detail.html:100 part/templates/part/part_sidebar.html:41 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217 -#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58 +#: templates/InvenTree/settings/sidebar.html:49 +#: templates/js/translated/search.js:190 templates/navbar.html:60 #: users/models.py:46 msgid "Sales Orders" msgstr "销售订单" -#: company/templates/company/detail.html:147 +#: company/templates/company/detail.html:146 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "新建销售订单" -#: company/templates/company/detail.html:148 +#: company/templates/company/detail.html:147 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "新建销售订单" -#: company/templates/company/detail.html:168 -#: templates/js/translated/build.js:1294 +#: company/templates/company/detail.html:167 +#: templates/js/translated/build.js:1312 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:186 +#: company/templates/company/detail.html:184 msgid "Company Notes" msgstr "公司备注" -#: company/templates/company/detail.html:380 -#: company/templates/company/manufacturer_part.html:215 -#: part/templates/part/detail.html:449 +#: company/templates/company/detail.html:375 +#: company/templates/company/manufacturer_part.html:216 +#: part/templates/part/detail.html:451 msgid "Delete Supplier Parts?" msgstr "删除供应商商品?" -#: company/templates/company/detail.html:381 -#: company/templates/company/manufacturer_part.html:216 -#: part/templates/part/detail.html:450 +#: company/templates/company/detail.html:376 +#: company/templates/company/manufacturer_part.html:217 +#: part/templates/part/detail.html:452 msgid "All selected supplier parts will be deleted" msgstr "删除所有选定的供应商商品" @@ -2872,83 +2985,83 @@ msgstr "删除所有选定的供应商商品" msgid "Supplier List" msgstr "供应商列表" -#: company/templates/company/manufacturer_part.html:14 company/views.py:55 -#: part/templates/part/prices.html:167 templates/InvenTree/search.html:178 -#: templates/navbar.html:46 +#: company/templates/company/manufacturer_part.html:15 company/views.py:55 +#: part/templates/part/prices.html:170 templates/InvenTree/search.html:178 +#: templates/navbar.html:48 msgid "Manufacturers" msgstr "制造商" -#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/manufacturer_part.html:36 #: company/templates/company/supplier_part.html:34 #: company/templates/company/supplier_part.html:159 -#: part/templates/part/detail.html:81 part/templates/part/part_base.html:76 +#: part/templates/part/detail.html:80 part/templates/part/part_base.html:80 msgid "Order part" msgstr "订购商品" -#: company/templates/company/manufacturer_part.html:40 +#: company/templates/company/manufacturer_part.html:41 #: templates/js/translated/company.js:565 msgid "Edit manufacturer part" msgstr "编辑制造商商品" -#: company/templates/company/manufacturer_part.html:44 +#: company/templates/company/manufacturer_part.html:45 #: templates/js/translated/company.js:566 msgid "Delete manufacturer part" msgstr "删除生产商商品" -#: company/templates/company/manufacturer_part.html:66 +#: company/templates/company/manufacturer_part.html:67 #: company/templates/company/supplier_part.html:63 msgid "Internal Part" msgstr "内部商品" -#: company/templates/company/manufacturer_part.html:114 +#: company/templates/company/manufacturer_part.html:115 #: company/templates/company/supplier_part.html:15 company/views.py:49 -#: part/templates/part/part_sidebar.html:36 part/templates/part/prices.html:163 -#: templates/InvenTree/search.html:188 templates/navbar.html:45 +#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:166 +#: templates/InvenTree/search.html:188 templates/navbar.html:47 msgid "Suppliers" msgstr "供应商" -#: company/templates/company/manufacturer_part.html:129 -#: part/templates/part/detail.html:373 +#: company/templates/company/manufacturer_part.html:130 +#: part/templates/part/detail.html:363 msgid "Delete supplier parts" msgstr "删除供应商商品" -#: company/templates/company/manufacturer_part.html:129 -#: company/templates/company/manufacturer_part.html:158 -#: company/templates/company/manufacturer_part.html:254 -#: part/templates/part/detail.html:373 part/templates/part/detail.html:402 -#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31 -#: users/models.py:217 +#: company/templates/company/manufacturer_part.html:130 +#: company/templates/company/manufacturer_part.html:159 +#: company/templates/company/manufacturer_part.html:255 +#: part/templates/part/detail.html:363 part/templates/part/detail.html:392 +#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:32 +#: users/models.py:218 msgid "Delete" msgstr "删除" -#: company/templates/company/manufacturer_part.html:143 +#: company/templates/company/manufacturer_part.html:144 #: company/templates/company/manufacturer_part_sidebar.html:5 -#: part/templates/part/category_sidebar.html:17 -#: part/templates/part/detail.html:189 part/templates/part/part_sidebar.html:9 +#: part/templates/part/category_sidebar.html:19 +#: part/templates/part/detail.html:179 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "参数" -#: company/templates/company/manufacturer_part.html:147 -#: part/templates/part/detail.html:194 +#: company/templates/company/manufacturer_part.html:148 +#: part/templates/part/detail.html:184 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part.html:66 msgid "New Parameter" msgstr "新建参数" -#: company/templates/company/manufacturer_part.html:158 +#: company/templates/company/manufacturer_part.html:159 msgid "Delete parameters" msgstr "删除参数" -#: company/templates/company/manufacturer_part.html:191 -#: part/templates/part/detail.html:892 +#: company/templates/company/manufacturer_part.html:192 +#: part/templates/part/detail.html:864 msgid "Add Parameter" msgstr "添加参数" -#: company/templates/company/manufacturer_part.html:239 +#: company/templates/company/manufacturer_part.html:240 msgid "Selected parameters will be deleted" msgstr "所选参数将被删除" -#: company/templates/company/manufacturer_part.html:251 +#: company/templates/company/manufacturer_part.html:252 msgid "Delete Parameters" msgstr "删除参数" @@ -2969,9 +3082,9 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:583 -#: stock/templates/stock/item_base.html:381 -#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1853 +#: company/templates/company/supplier_part.html:24 stock/models.py:619 +#: stock/templates/stock/item_base.html:386 +#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1874 msgid "Supplier Part" msgstr "供应商商品" @@ -2991,13 +3104,13 @@ msgid "Supplier Part Stock" msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:141 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:165 +#: part/templates/part/detail.html:23 stock/templates/stock/location.html:167 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:142 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166 -#: templates/js/translated/stock.js:376 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:168 +#: templates/js/translated/stock.js:379 msgid "New Stock Item" msgstr "" @@ -3007,18 +3120,18 @@ msgid "Supplier Part Orders" msgstr "供应商商品订单" #: company/templates/company/supplier_part.html:160 -#: part/templates/part/detail.html:82 +#: part/templates/part/detail.html:81 msgid "Order Part" msgstr "订购商品" #: company/templates/company/supplier_part.html:179 -#: part/templates/part/prices.html:7 +#: part/templates/part/prices.html:10 msgid "Pricing Information" msgstr "价格信息" #: company/templates/company/supplier_part.html:184 #: company/templates/company/supplier_part.html:298 -#: part/templates/part/prices.html:271 part/views.py:1254 +#: part/templates/part/prices.html:274 templates/js/translated/part.js:2053 msgid "Add Price Break" msgstr "" @@ -3026,11 +3139,13 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:224 part/views.py:1316 +#: company/templates/company/supplier_part.html:224 +#: templates/js/translated/part.js:2063 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:238 part/views.py:1302 +#: company/templates/company/supplier_part.html:238 +#: templates/js/translated/part.js:2077 msgid "Edit Price Break" msgstr "" @@ -3047,15 +3162,15 @@ msgid "Last updated" msgstr "" #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/part_sidebar.html:15 +#: part/templates/part/part_sidebar.html:14 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:18 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:150 -#: templates/InvenTree/settings/sidebar.html:41 -#: templates/js/translated/bom.js:553 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:632 templates/js/translated/part.js:1149 -#: templates/js/translated/part.js:1310 templates/js/translated/stock.js:900 -#: templates/js/translated/stock.js:1676 templates/navbar.html:28 +#: templates/InvenTree/settings/sidebar.html:43 +#: templates/js/translated/bom.js:553 templates/js/translated/part.js:673 +#: templates/js/translated/part.js:1221 templates/js/translated/part.js:1382 +#: templates/js/translated/stock.js:903 templates/js/translated/stock.js:1696 +#: templates/navbar.html:30 msgid "Stock" msgstr "库存" @@ -3069,17 +3184,20 @@ msgid "Supplier Part Pricing" msgstr "供应商商品价格" #: company/templates/company/supplier_part_navbar.html:29 -#: part/templates/part/part_sidebar.html:32 +#: part/templates/part/part_sidebar.html:31 msgid "Pricing" msgstr "定价" #: company/templates/company/supplier_part_sidebar.html:5 -#: stock/templates/stock/location.html:136 -#: stock/templates/stock/location.html:150 -#: stock/templates/stock/location.html:162 +#: part/templates/part/category.html:192 +#: part/templates/part/category_sidebar.html:17 +#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:152 +#: stock/templates/stock/location.html:164 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2455 -#: templates/stats.html:105 templates/stats.html:114 users/models.py:43 +#: templates/InvenTree/search.html:152 templates/js/translated/search.js:127 +#: templates/js/translated/stock.js:2311 templates/stats.html:105 +#: templates/stats.html:114 users/models.py:43 msgid "Stock Items" msgstr "库存项" @@ -3092,7 +3210,7 @@ msgid "New Manufacturer" msgstr "新建制造商" #: company/views.py:61 templates/InvenTree/search.html:208 -#: templates/navbar.html:57 +#: templates/navbar.html:59 msgid "Customers" msgstr "客户信息" @@ -3100,7 +3218,7 @@ msgstr "客户信息" msgid "New Customer" msgstr "新建客户" -#: company/views.py:69 +#: company/views.py:69 templates/js/translated/search.js:159 msgid "Companies" msgstr "公司" @@ -3108,24 +3226,24 @@ msgstr "公司" msgid "New Company" msgstr "新建公司信息" -#: company/views.py:129 part/views.py:589 +#: company/views.py:129 part/views.py:591 msgid "Download Image" msgstr "下载图片" -#: company/views.py:158 part/views.py:621 +#: company/views.py:158 part/views.py:623 msgid "Image size exceeds maximum allowable size for download" msgstr "图像大小超过下载允许的最大尺寸" -#: company/views.py:165 part/views.py:628 +#: company/views.py:165 part/views.py:630 #, python-brace-format msgid "Invalid response: {code}" msgstr "无效响应: {code}" -#: company/views.py:174 part/views.py:637 +#: company/views.py:174 part/views.py:639 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: label/api.py:57 report/api.py:203 +#: label/api.py:97 report/api.py:203 msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" @@ -3349,9 +3467,9 @@ msgstr "" #: order/models.py:892 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report.html:77 -#: stock/templates/stock/item_base.html:331 -#: templates/js/translated/order.js:936 templates/js/translated/part.js:840 -#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:2530 +#: stock/templates/stock/item_base.html:336 +#: templates/js/translated/order.js:936 templates/js/translated/part.js:894 +#: templates/js/translated/stock.js:1851 templates/js/translated/stock.js:2416 msgid "Purchase Order" msgstr "" @@ -3361,8 +3479,8 @@ msgstr "供应商商品" #: order/models.py:920 order/templates/order/order_base.html:163 #: templates/js/translated/order.js:714 templates/js/translated/order.js:1313 -#: templates/js/translated/part.js:934 templates/js/translated/part.js:961 -#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/part.js:988 templates/js/translated/part.js:1015 +#: templates/js/translated/table_filters.js:330 msgid "Received" msgstr "" @@ -3370,9 +3488,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:712 -#: stock/serializers.py:170 stock/templates/stock/item_base.html:338 -#: templates/js/translated/stock.js:1884 +#: order/models.py:928 part/templates/part/prices.html:179 stock/models.py:749 +#: stock/serializers.py:170 stock/templates/stock/item_base.html:343 +#: templates/js/translated/stock.js:1905 msgid "Purchase Price" msgstr "采购价格" @@ -3385,7 +3503,7 @@ msgid "Where does the Purchaser want this item to be stored?" msgstr "" #: order/models.py:992 part/templates/part/part_pricing.html:112 -#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 +#: part/templates/part/prices.html:119 part/templates/part/prices.html:288 msgid "Sale Price" msgstr "销售价格" @@ -3470,7 +3588,7 @@ msgid "Line" msgstr "" #: order/models.py:1248 order/serializers.py:918 order/serializers.py:1046 -#: templates/js/translated/model_renderers.js:285 +#: templates/js/translated/model_renderers.js:304 msgid "Shipment" msgstr "" @@ -3478,7 +3596,7 @@ msgstr "" msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1261 +#: order/models.py:1261 templates/InvenTree/notifications/notifications.html:70 msgid "Item" msgstr "" @@ -3607,7 +3725,7 @@ msgid "Receive items" msgstr "" #: order/templates/order/order_base.html:58 -#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:30 msgid "Receive Items" msgstr "" @@ -3700,9 +3818,9 @@ msgstr "选择供应商商品" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:76 templates/js/translated/build.js:381 -#: templates/js/translated/build.js:529 templates/js/translated/build.js:1572 +#: templates/js/translated/build.js:529 templates/js/translated/build.js:1637 #: templates/js/translated/order.js:662 templates/js/translated/order.js:1693 -#: templates/js/translated/stock.js:566 templates/js/translated/stock.js:734 +#: templates/js/translated/stock.js:569 templates/js/translated/stock.js:737 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "移除行" @@ -3718,7 +3836,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:25 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:23 -#: templates/patterns/wizard/upload.html:11 +#: templates/patterns/wizard/upload.html:13 #, python-format msgid "Step %(step)s of %(count)s" msgstr "步骤 %(step)s / %(count)s" @@ -3796,27 +3914,27 @@ msgstr "" msgid "Received Stock" msgstr "" -#: order/templates/order/purchase_order_detail.html:18 +#: order/templates/order/purchase_order_detail.html:17 msgid "Purchase Order Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:27 -#: order/templates/order/purchase_order_detail.html:166 -#: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:233 +#: order/templates/order/purchase_order_detail.html:26 +#: order/templates/order/purchase_order_detail.html:159 +#: order/templates/order/sales_order_detail.html:22 +#: order/templates/order/sales_order_detail.html:226 msgid "Add Line Item" msgstr "" -#: order/templates/order/purchase_order_detail.html:30 +#: order/templates/order/purchase_order_detail.html:29 msgid "Receive selected items" msgstr "" -#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/purchase_order_detail.html:49 msgid "Received Items" msgstr "" -#: order/templates/order/purchase_order_detail.html:76 -#: order/templates/order/sales_order_detail.html:123 +#: order/templates/order/purchase_order_detail.html:74 +#: order/templates/order/sales_order_detail.html:121 msgid "Order Notes" msgstr "" @@ -3848,7 +3966,7 @@ msgid "Customer Reference" msgstr "" #: order/templates/order/sales_order_base.html:140 -#: order/templates/order/sales_order_detail.html:78 +#: order/templates/order/sales_order_detail.html:77 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" @@ -3866,21 +3984,21 @@ msgstr "警告" msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: order/templates/order/sales_order_detail.html:18 +#: order/templates/order/sales_order_detail.html:17 msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:44 +#: order/templates/order/sales_order_detail.html:43 #: order/templates/order/so_sidebar.html:8 msgid "Pending Shipments" msgstr "" -#: order/templates/order/sales_order_detail.html:48 -#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1480 +#: order/templates/order/sales_order_detail.html:47 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:1545 msgid "Actions" msgstr "" -#: order/templates/order/sales_order_detail.html:57 +#: order/templates/order/sales_order_detail.html:56 msgid "New Shipment" msgstr "" @@ -3951,52 +4069,52 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:491 +#: part/api.py:509 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:511 +#: part/api.py:529 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:529 +#: part/api.py:547 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:561 +#: part/api.py:579 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:641 +#: part/api.py:659 msgid "Valid" msgstr "" -#: part/api.py:642 +#: part/api.py:660 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:647 +#: part/api.py:665 msgid "This option must be selected" msgstr "" -#: part/api.py:1005 +#: part/api.py:1045 msgid "Must be greater than zero" msgstr "必须大于0" -#: part/api.py:1009 +#: part/api.py:1049 msgid "Must be a valid quantity" msgstr "必须是有效的数量" -#: part/api.py:1024 +#: part/api.py:1064 msgid "Specify location for initial part stock" msgstr "指定初始初始商品仓储地点" -#: part/api.py:1055 part/api.py:1059 part/api.py:1074 part/api.py:1078 +#: part/api.py:1095 part/api.py:1099 part/api.py:1114 part/api.py:1118 msgid "This field is required" msgstr "此字段为必填" -#: part/bom.py:125 part/models.py:112 part/models.py:887 -#: part/templates/part/category.html:108 part/templates/part/part_base.html:354 +#: part/bom.py:125 part/models.py:112 part/models.py:892 +#: part/templates/part/category.html:108 part/templates/part/part_base.html:330 msgid "Default Location" msgstr "默认仓储地点" @@ -4004,12 +4122,14 @@ msgstr "默认仓储地点" msgid "Total Stock" msgstr "" -#: part/bom.py:127 part/templates/part/part_base.html:185 +#: part/bom.py:127 part/templates/part/part_base.html:189 msgid "Available Stock" msgstr "可用库存" -#: part/bom.py:128 part/templates/part/part_base.html:203 -#: templates/js/translated/part.js:1325 +#: part/bom.py:128 part/templates/part/part_base.html:207 +#: templates/js/translated/part.js:512 templates/js/translated/part.js:532 +#: templates/js/translated/part.js:1224 templates/js/translated/part.js:1396 +#: templates/js/translated/part.js:1412 msgid "On Order" msgstr "" @@ -4041,14 +4161,14 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:126 part/models.py:2612 part/templates/part/category.html:15 +#: part/models.py:126 part/models.py:2642 part/templates/part/category.html:15 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" #: part/models.py:127 part/templates/part/category.html:128 -#: templates/InvenTree/search.html:95 templates/stats.html:96 -#: users/models.py:40 +#: templates/InvenTree/search.html:95 templates/js/translated/search.js:113 +#: templates/stats.html:96 users/models.py:40 msgid "Part Categories" msgstr "商品类别" @@ -4057,9 +4177,10 @@ msgstr "商品类别" #: part/templates/part/category.html:153 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82 -#: templates/InvenTree/settings/sidebar.html:37 -#: templates/js/translated/part.js:1687 templates/navbar.html:21 -#: templates/stats.html:92 templates/stats.html:101 users/models.py:41 +#: templates/InvenTree/settings/sidebar.html:39 +#: templates/js/translated/part.js:1775 templates/js/translated/search.js:99 +#: templates/navbar.html:23 templates/stats.html:92 templates/stats.html:101 +#: users/models.py:41 msgid "Parts" msgstr "商品" @@ -4084,472 +4205,482 @@ msgstr "" msgid "Most recent serial number is" msgstr "" -#: part/models.py:786 +#: part/models.py:787 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:811 part/models.py:2665 +#: part/models.py:816 part/models.py:2695 msgid "Part name" msgstr "商品名称" -#: part/models.py:818 +#: part/models.py:823 msgid "Is Template" msgstr "" -#: part/models.py:819 +#: part/models.py:824 msgid "Is this part a template part?" msgstr "" -#: part/models.py:829 +#: part/models.py:834 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:830 +#: part/models.py:835 msgid "Variant Of" msgstr "" -#: part/models.py:836 +#: part/models.py:841 msgid "Part description" msgstr "商品描述" -#: part/models.py:841 part/templates/part/category.html:86 -#: part/templates/part/part_base.html:318 +#: part/models.py:846 part/templates/part/category.html:86 +#: part/templates/part/part_base.html:294 msgid "Keywords" msgstr "关键词" -#: part/models.py:842 +#: part/models.py:847 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:849 part/models.py:2362 part/models.py:2611 -#: part/templates/part/part_base.html:281 +#: part/models.py:854 part/models.py:2392 part/models.py:2641 +#: part/templates/part/part_base.html:257 #: part/templates/part/set_category.html:15 -#: templates/InvenTree/settings/settings.html:223 -#: templates/js/translated/part.js:1292 +#: templates/InvenTree/notifications/notifications.html:65 +#: templates/InvenTree/settings/settings.html:224 +#: templates/js/translated/part.js:1364 msgid "Category" msgstr "类别" -#: part/models.py:850 +#: part/models.py:855 msgid "Part category" msgstr "商品类别" -#: part/models.py:855 part/templates/part/part_base.html:290 -#: templates/js/translated/part.js:620 templates/js/translated/part.js:1245 -#: templates/js/translated/stock.js:1648 +#: part/models.py:860 part/templates/part/part_base.html:266 +#: templates/js/translated/part.js:661 templates/js/translated/part.js:1317 +#: templates/js/translated/stock.js:1668 msgid "IPN" msgstr "" -#: part/models.py:856 +#: part/models.py:861 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:862 +#: part/models.py:867 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:863 part/templates/part/part_base.html:297 -#: report/models.py:200 templates/js/translated/part.js:624 +#: part/models.py:868 part/templates/part/part_base.html:273 +#: report/models.py:200 templates/js/translated/part.js:665 msgid "Revision" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:932 part/templates/part/part_base.html:363 +#: part/models.py:937 part/templates/part/part_base.html:339 msgid "Default Supplier" msgstr "" -#: part/models.py:933 +#: part/models.py:938 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:940 +#: part/models.py:945 msgid "Default Expiry" msgstr "" -#: part/models.py:941 +#: part/models.py:946 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:946 part/templates/part/part_base.html:196 +#: part/models.py:951 part/templates/part/part_base.html:200 msgid "Minimum Stock" msgstr "最低库存" -#: part/models.py:947 +#: part/models.py:952 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:954 +#: part/models.py:959 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:960 +#: part/models.py:965 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:966 +#: part/models.py:971 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:972 +#: part/models.py:977 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:977 +#: part/models.py:982 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:982 +#: part/models.py:987 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:987 +#: part/models.py:992 msgid "Is this part active?" msgstr "" -#: part/models.py:992 +#: part/models.py:997 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:997 +#: part/models.py:1002 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "BOM checksum" msgstr "" -#: part/models.py:1000 +#: part/models.py:1005 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1003 +#: part/models.py:1008 msgid "BOM checked by" msgstr "" -#: part/models.py:1005 +#: part/models.py:1010 msgid "BOM checked date" msgstr "" -#: part/models.py:1009 +#: part/models.py:1014 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1848 +#: part/models.py:1878 msgid "Sell multiple" msgstr "" -#: part/models.py:2412 +#: part/models.py:2442 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2429 +#: part/models.py:2459 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2449 templates/js/translated/part.js:1738 -#: templates/js/translated/stock.js:1276 +#: part/models.py:2479 templates/js/translated/part.js:1826 +#: templates/js/translated/stock.js:1283 msgid "Test Name" msgstr "" -#: part/models.py:2450 +#: part/models.py:2480 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2455 +#: part/models.py:2485 msgid "Test Description" msgstr "" -#: part/models.py:2456 +#: part/models.py:2486 msgid "Enter description for this test" msgstr "" -#: part/models.py:2461 templates/js/translated/part.js:1747 -#: templates/js/translated/table_filters.js:276 +#: part/models.py:2491 templates/js/translated/part.js:1835 +#: templates/js/translated/table_filters.js:294 msgid "Required" msgstr "" -#: part/models.py:2462 +#: part/models.py:2492 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2467 templates/js/translated/part.js:1755 +#: part/models.py:2497 templates/js/translated/part.js:1843 msgid "Requires Value" msgstr "" -#: part/models.py:2468 +#: part/models.py:2498 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2473 templates/js/translated/part.js:1762 +#: part/models.py:2503 templates/js/translated/part.js:1850 msgid "Requires Attachment" msgstr "" -#: part/models.py:2474 +#: part/models.py:2504 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2485 +#: part/models.py:2515 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2521 +#: part/models.py:2551 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2529 +#: part/models.py:2559 msgid "Parameter Name" msgstr "" -#: part/models.py:2536 +#: part/models.py:2566 msgid "Parameter Units" msgstr "" -#: part/models.py:2566 +#: part/models.py:2596 msgid "Parent Part" msgstr "" -#: part/models.py:2568 part/models.py:2617 part/models.py:2618 -#: templates/InvenTree/settings/settings.html:218 +#: part/models.py:2598 part/models.py:2647 part/models.py:2648 +#: templates/InvenTree/settings/settings.html:219 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Data" msgstr "" -#: part/models.py:2570 +#: part/models.py:2600 msgid "Parameter Value" msgstr "" -#: part/models.py:2622 templates/InvenTree/settings/settings.html:227 +#: part/models.py:2652 templates/InvenTree/settings/settings.html:228 msgid "Default Value" msgstr "默认值" -#: part/models.py:2623 +#: part/models.py:2653 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2657 +#: part/models.py:2687 msgid "Part ID or part name" msgstr "" -#: part/models.py:2660 templates/js/translated/model_renderers.js:182 +#: part/models.py:2690 templates/js/translated/model_renderers.js:203 msgid "Part ID" msgstr "商品ID" -#: part/models.py:2661 +#: part/models.py:2691 msgid "Unique part ID value" msgstr "" -#: part/models.py:2664 +#: part/models.py:2694 msgid "Part Name" msgstr "" -#: part/models.py:2668 +#: part/models.py:2698 msgid "Part IPN" msgstr "" -#: part/models.py:2669 +#: part/models.py:2699 msgid "Part IPN value" msgstr "" -#: part/models.py:2672 +#: part/models.py:2702 msgid "Level" msgstr "" -#: part/models.py:2673 +#: part/models.py:2703 msgid "BOM level" msgstr "" -#: part/models.py:2734 +#: part/models.py:2778 msgid "Select parent part" msgstr "" -#: part/models.py:2742 +#: part/models.py:2786 msgid "Sub part" msgstr "" -#: part/models.py:2743 +#: part/models.py:2787 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2749 +#: part/models.py:2793 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2751 part/templates/part/upload_bom.html:58 -#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863 +#: part/models.py:2795 part/templates/part/upload_bom.html:58 +#: templates/js/translated/bom.js:805 templates/js/translated/bom.js:899 #: templates/js/translated/table_filters.js:92 msgid "Optional" msgstr "可选项" -#: part/models.py:2751 +#: part/models.py:2795 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2754 part/templates/part/upload_bom.html:55 +#: part/models.py:2798 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2755 +#: part/models.py:2799 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2758 +#: part/models.py:2802 msgid "BOM item reference" msgstr "" -#: part/models.py:2761 +#: part/models.py:2805 msgid "BOM item notes" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "Checksum" msgstr "" -#: part/models.py:2763 +#: part/models.py:2807 msgid "BOM line checksum" msgstr "" -#: part/models.py:2767 part/templates/part/upload_bom.html:57 -#: templates/js/translated/bom.js:880 +#: part/models.py:2811 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:916 #: templates/js/translated/table_filters.js:68 #: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "继承项" -#: part/models.py:2768 +#: part/models.py:2812 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2773 part/templates/part/upload_bom.html:56 -#: templates/js/translated/bom.js:872 +#: part/models.py:2817 part/templates/part/upload_bom.html:56 +#: templates/js/translated/bom.js:908 msgid "Allow Variants" msgstr "" -#: part/models.py:2774 +#: part/models.py:2818 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2859 stock/models.py:461 +#: part/models.py:2903 stock/models.py:497 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2868 part/models.py:2870 +#: part/models.py:2912 part/models.py:2914 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2999 +#: part/models.py:3026 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:3021 +#: part/models.py:3048 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:3033 +#: part/models.py:3060 msgid "Parent BOM item" msgstr "" -#: part/models.py:3041 +#: part/models.py:3068 msgid "Substitute part" msgstr "" -#: part/models.py:3052 +#: part/models.py:3079 msgid "Part 1" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Part 2" msgstr "" -#: part/models.py:3056 +#: part/models.py:3083 msgid "Select Related Part" msgstr "" -#: part/models.py:3088 +#: part/models.py:3115 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" -#: part/serializers.py:670 +#: part/serializers.py:157 part/serializers.py:189 stock/serializers.py:180 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:923 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:681 +#: part/serializers.py:934 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:682 +#: part/serializers.py:935 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:687 +#: part/serializers.py:940 msgid "Include Inherited" msgstr "" -#: part/serializers.py:688 +#: part/serializers.py:941 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:693 +#: part/serializers.py:946 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:694 +#: part/serializers.py:947 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:699 +#: part/serializers.py:952 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:700 +#: part/serializers.py:953 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:744 +#: part/serializers.py:997 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:745 +#: part/serializers.py:998 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:772 +#: part/serializers.py:1025 msgid "No part column specified" msgstr "" -#: part/serializers.py:815 +#: part/serializers.py:1068 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:818 +#: part/serializers.py:1071 msgid "No matching part found" msgstr "" -#: part/serializers.py:821 +#: part/serializers.py:1074 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:830 +#: part/serializers.py:1083 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:838 +#: part/serializers.py:1091 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:857 +#: part/serializers.py:1110 msgid "At least one BOM item is required" msgstr "" -#: part/tasks.py:58 +#: part/tasks.py:18 msgid "Low stock notification" msgstr "" +#: part/tasks.py:19 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." msgstr "" @@ -4569,7 +4700,7 @@ msgstr "" msgid "The BOM for %(part)s has not been validated." msgstr "" -#: part/templates/part/bom.html:30 part/templates/part/detail.html:272 +#: part/templates/part/bom.html:30 part/templates/part/detail.html:262 msgid "BOM actions" msgstr "" @@ -4621,7 +4752,7 @@ msgstr "类别路径" msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:114 part/templates/part/category.html:202 +#: part/templates/part/category.html:114 part/templates/part/category.html:211 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "子类别" @@ -4658,23 +4789,23 @@ msgstr "导出" msgid "Export Data" msgstr "导出数据" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:201 msgid "Part Parameters" msgstr "商品参数" -#: part/templates/part/category.html:285 +#: part/templates/part/category.html:309 msgid "Create Part Category" msgstr "创建商品类别" -#: part/templates/part/category.html:305 +#: part/templates/part/category.html:329 msgid "Create Part" msgstr "创建商品" -#: part/templates/part/category.html:308 +#: part/templates/part/category.html:332 msgid "Create another part after this one" msgstr "" -#: part/templates/part/category.html:309 +#: part/templates/part/category.html:333 msgid "Part created successfully" msgstr "" @@ -4714,7 +4845,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:349 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:350 msgid "Duplicate Part" msgstr "复制部件" @@ -4738,150 +4869,150 @@ msgstr "" msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" -#: part/templates/part/detail.html:21 +#: part/templates/part/detail.html:20 msgid "Part Stock" msgstr "商品库存" -#: part/templates/part/detail.html:53 +#: part/templates/part/detail.html:52 msgid "Part Test Templates" msgstr "" -#: part/templates/part/detail.html:58 +#: part/templates/part/detail.html:57 msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:115 stock/templates/stock/item.html:58 +#: part/templates/part/detail.html:114 stock/templates/stock/item.html:58 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:161 +#: part/templates/part/detail.html:136 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:151 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:165 +#: part/templates/part/detail.html:155 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:166 +#: part/templates/part/detail.html:156 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:193 +#: part/templates/part/detail.html:183 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:230 part/templates/part/part_sidebar.html:55 +#: part/templates/part/detail.html:220 part/templates/part/part_sidebar.html:54 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:234 part/templates/part/detail.html:235 +#: part/templates/part/detail.html:224 part/templates/part/detail.html:225 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:18 +#: part/templates/part/detail.html:245 part/templates/part/part_sidebar.html:17 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:250 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:283 +#: part/templates/part/detail.html:254 templates/js/translated/bom.js:283 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:256 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:266 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:277 templates/js/translated/part.js:273 +#: part/templates/part/detail.html:267 templates/js/translated/part.js:273 msgid "Copy BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:268 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 +#: part/templates/part/detail.html:273 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:284 +#: part/templates/part/detail.html:274 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:287 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:315 +#: part/templates/part/detail.html:305 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:342 stock/templates/stock/item.html:43 +#: part/templates/part/detail.html:332 stock/templates/stock/item.html:43 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:358 +#: part/templates/part/detail.html:348 msgid "Part Suppliers" msgstr "商品供应商" -#: part/templates/part/detail.html:386 +#: part/templates/part/detail.html:376 msgid "Part Manufacturers" msgstr "商品制造商" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:392 msgid "Delete manufacturer parts" msgstr "删除制造商商品" -#: part/templates/part/detail.html:593 +#: part/templates/part/detail.html:595 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:594 +#: part/templates/part/detail.html:596 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:643 +#: part/templates/part/detail.html:645 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:689 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:695 +#: part/templates/part/detail.html:697 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:792 +#: part/templates/part/detail.html:794 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:842 -msgid "Edit Part Notes" -msgstr "编辑商品注释" - -#: part/templates/part/detail.html:955 +#: part/templates/part/detail.html:927 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:967 +#: part/templates/part/detail.html:939 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:979 +#: part/templates/part/detail.html:951 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1068 +#: part/templates/part/detail.html:1040 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4947,234 +5078,217 @@ msgstr "" msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:46 #: stock/templates/stock/item_base.html:39 #: stock/templates/stock/location.html:36 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:55 -#: stock/templates/stock/location.html:37 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:57 +#: stock/templates/stock/location.html:38 msgid "Print Label" msgstr "打印标签" -#: part/templates/part/part_base.html:51 +#: part/templates/part/part_base.html:55 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:56 -#: stock/templates/stock/item_base.html:105 -#: stock/templates/stock/location.html:45 +#: part/templates/part/part_base.html:60 +#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/location.html:47 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:63 +#: part/templates/part/part_base.html:67 msgid "Count part stock" msgstr "清点商品库存" -#: part/templates/part/part_base.html:69 +#: part/templates/part/part_base.html:73 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:84 +#: part/templates/part/part_base.html:88 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:87 +#: part/templates/part/part_base.html:91 msgid "Duplicate part" msgstr "重复的商品" -#: part/templates/part/part_base.html:90 +#: part/templates/part/part_base.html:94 msgid "Edit part" msgstr "编辑商品" -#: part/templates/part/part_base.html:93 +#: part/templates/part/part_base.html:97 msgid "Delete part" msgstr "删除商品" -#: part/templates/part/part_base.html:112 +#: part/templates/part/part_base.html:116 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:116 +#: part/templates/part/part_base.html:120 msgid "Part can be assembled from other parts" msgstr "商品可以由其他部件组装" -#: part/templates/part/part_base.html:120 +#: part/templates/part/part_base.html:124 msgid "Part can be used in assemblies" msgstr "商品可以用于组装成品" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:128 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:128 +#: part/templates/part/part_base.html:132 msgid "Part can be purchased from external suppliers" msgstr "商品可以从外部供应商处购买" -#: part/templates/part/part_base.html:132 +#: part/templates/part/part_base.html:136 msgid "Part can be sold to customers" msgstr "商品可以销售给客户" -#: part/templates/part/part_base.html:138 -#: part/templates/part/part_base.html:146 +#: part/templates/part/part_base.html:142 +#: part/templates/part/part_base.html:150 msgid "Part is virtual (not a physical part)" msgstr "商品是虚拟的(不是实体零件)" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:143 #: templates/js/translated/company.js:508 #: templates/js/translated/company.js:765 -#: templates/js/translated/model_renderers.js:175 -#: templates/js/translated/part.js:535 templates/js/translated/part.js:612 +#: templates/js/translated/model_renderers.js:195 +#: templates/js/translated/part.js:576 templates/js/translated/part.js:653 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:156 -#: part/templates/part/part_base.html:595 +#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:573 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:173 +#: part/templates/part/part_base.html:177 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2436 +#: part/templates/part/part_base.html:194 templates/js/translated/order.js:2436 #: templates/js/translated/table_filters.js:193 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:211 templates/InvenTree/index.html:178 -msgid "Required for Build Orders" -msgstr "" - -#: part/templates/part/part_base.html:216 +#: part/templates/part/part_base.html:215 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:220 -#: part/templates/part/part_base.html:243 -msgid "Required quantity has not been allocated" -msgstr "" - -#: part/templates/part/part_base.html:222 -#: part/templates/part/part_base.html:245 -msgid "Required quantity has been allocated" -msgstr "" - -#: part/templates/part/part_base.html:232 -msgid "Required for Sales Orders" -msgstr "" - -#: part/templates/part/part_base.html:239 +#: part/templates/part/part_base.html:224 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:255 templates/js/translated/bom.js:901 +#: part/templates/part/part_base.html:232 templates/js/translated/bom.js:937 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:261 templates/js/translated/part.js:1156 -#: templates/js/translated/part.js:1329 +#: part/templates/part/part_base.html:238 templates/js/translated/part.js:515 +#: templates/js/translated/part.js:535 templates/js/translated/part.js:1228 +#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1416 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:311 +#: part/templates/part/part_base.html:287 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:340 +#: part/templates/part/part_base.html:316 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:344 -#: stock/templates/stock/item_base.html:161 +#: part/templates/part/part_base.html:320 +#: stock/templates/stock/item_base.html:166 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:465 part/templates/part/prices.html:144 +#: part/templates/part/part_base.html:443 part/templates/part/prices.html:147 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:508 +#: part/templates/part/part_base.html:486 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:567 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:24 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 #: part/templates/part/part_pricing.html:100 -#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 -#: part/templates/part/prices.html:120 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:28 +#: part/templates/part/prices.html:55 part/templates/part/prices.html:106 +#: part/templates/part/prices.html:123 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:104 -#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 -#: part/templates/part/prices.html:125 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:35 +#: part/templates/part/prices.html:62 part/templates/part/prices.html:111 +#: part/templates/part/prices.html:128 msgid "Total Cost" msgstr "" -#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:855 +#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:43 +#: templates/js/translated/bom.js:891 msgid "No supplier pricing available" msgstr "" -#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:243 +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:52 +#: part/templates/part/prices.html:246 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:72 msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:79 msgid "Total Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:89 msgid "Note: BOM pricing is incomplete for this part" msgstr "注:此商品BOM价格不完整。" -#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:96 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:105 msgid "Internal Price" msgstr "" #: part/templates/part/part_pricing.html:128 -#: part/templates/part/prices.html:134 +#: part/templates/part/prices.html:137 msgid "No pricing information is available for this part." msgstr "此商品无价格信息可用。" -#: part/templates/part/part_sidebar.html:12 +#: part/templates/part/part_sidebar.html:11 msgid "Variants" msgstr "" -#: part/templates/part/part_sidebar.html:28 +#: part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/templates/part/part_sidebar.html:47 +#: part/templates/part/part_sidebar.html:46 msgid "Scheduling" msgstr "" -#: part/templates/part/part_sidebar.html:51 +#: part/templates/part/part_sidebar.html:50 msgid "Test Templates" msgstr "" @@ -5219,69 +5333,69 @@ msgstr "" msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information." msgstr "" -#: part/templates/part/prices.html:16 +#: part/templates/part/prices.html:19 msgid "Pricing ranges" msgstr "" -#: part/templates/part/prices.html:22 +#: part/templates/part/prices.html:25 msgid "Show supplier cost" msgstr "" -#: part/templates/part/prices.html:23 +#: part/templates/part/prices.html:26 msgid "Show purchase price" msgstr "" -#: part/templates/part/prices.html:50 +#: part/templates/part/prices.html:53 msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:117 +#: part/templates/part/prices.html:120 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:118 +#: part/templates/part/prices.html:121 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:140 +#: part/templates/part/prices.html:143 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849 +#: part/templates/part/prices.html:158 templates/js/translated/bom.js:885 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 -#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 -#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 +#: part/templates/part/prices.html:159 part/templates/part/prices.html:180 +#: part/templates/part/prices.html:204 part/templates/part/prices.html:234 +#: part/templates/part/prices.html:260 part/templates/part/prices.html:289 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:181 +#: part/templates/part/prices.html:184 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:190 +#: part/templates/part/prices.html:193 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:200 +#: part/templates/part/prices.html:203 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:215 part/views.py:1325 +#: part/templates/part/prices.html:218 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:230 +#: part/templates/part/prices.html:233 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:256 +#: part/templates/part/prices.html:259 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:296 +#: part/templates/part/prices.html:300 msgid "No sale pice history available for this part." msgstr "" @@ -5289,9 +5403,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "为以下商品设置类别" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811 -#: templates/js/translated/part.js:499 templates/js/translated/part.js:1146 -#: templates/js/translated/part.js:1333 +#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:538 +#: templates/js/translated/part.js:1216 templates/js/translated/part.js:1420 msgid "No Stock" msgstr "" @@ -5345,112 +5458,109 @@ msgstr "" msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:174 +#: part/templatetags/inventree_extras.py:198 msgid "Unknown database" msgstr "" -#: part/views.py:88 +#: part/templatetags/inventree_extras.py:235 +#, python-brace-format +msgid "{title} v{version}" +msgstr "" + +#: part/views.py:86 msgid "Set Part Category" msgstr "设置商品类别" -#: part/views.py:138 +#: part/views.py:136 #, python-brace-format msgid "Set category for {n} parts" msgstr "为 {n} 个商品设置类别" -#: part/views.py:210 +#: part/views.py:208 msgid "Match References" msgstr "" -#: part/views.py:507 +#: part/views.py:509 msgid "None" msgstr "" -#: part/views.py:566 +#: part/views.py:568 msgid "Part QR Code" msgstr "商品二维码" -#: part/views.py:668 +#: part/views.py:670 msgid "Select Part Image" msgstr "选择商品图像" -#: part/views.py:694 +#: part/views.py:696 msgid "Updated part image" msgstr "更新商品图像" -#: part/views.py:697 +#: part/views.py:699 msgid "Part image not found" msgstr "未找到商品图像" -#: part/views.py:785 +#: part/views.py:787 msgid "Confirm Part Deletion" msgstr "确认删除商品" -#: part/views.py:792 +#: part/views.py:794 msgid "Part was deleted" msgstr "商品已删除" -#: part/views.py:801 +#: part/views.py:803 msgid "Part Pricing" msgstr "商品价格" -#: part/views.py:950 +#: part/views.py:952 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:960 +#: part/views.py:962 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:967 +#: part/views.py:969 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1026 templates/js/translated/part.js:316 +#: part/views.py:1012 templates/js/translated/part.js:317 msgid "Edit Part Category" msgstr "编辑商品类别" -#: part/views.py:1064 +#: part/views.py:1050 msgid "Delete Part Category" msgstr "删除商品类别" -#: part/views.py:1070 +#: part/views.py:1056 msgid "Part category was deleted" msgstr "商品类别已删除" -#: part/views.py:1079 +#: part/views.py:1065 msgid "Create Category Parameter Template" msgstr "创建类别参数模板" -#: part/views.py:1180 +#: part/views.py:1166 msgid "Edit Category Parameter Template" msgstr "编辑类别参数模板" -#: part/views.py:1236 +#: part/views.py:1222 msgid "Delete Category Parameter Template" msgstr "删除类别参数模板" -#: part/views.py:1258 -msgid "Added new price break" -msgstr "" - -#: part/views.py:1334 -msgid "Edit Internal Price Break" -msgstr "" - -#: part/views.py:1342 -msgid "Delete Internal Price Break" -msgstr "" - -#: plugin/apps.py:43 +#: plugin/apps.py:52 msgid "Your enviroment has an outdated git version. This prevents InvenTree from loading plugin details." msgstr "" -#: plugin/integration.py:138 +#: plugin/events.py:225 +msgid "Label printing failed" +msgstr "" + +#: plugin/integration.py:146 msgid "No author found" msgstr "" -#: plugin/integration.py:152 +#: plugin/integration.py:160 msgid "No date found" msgstr "" @@ -5478,7 +5588,7 @@ msgstr "" msgid "Is the plugin active" msgstr "" -#: plugin/models.py:199 +#: plugin/models.py:182 msgid "Plugin" msgstr "" @@ -5514,35 +5624,35 @@ msgstr "" msgid "A setting with multiple choices" msgstr "" -#: plugin/serializers.py:50 +#: plugin/serializers.py:49 msgid "Source URL" msgstr "" -#: plugin/serializers.py:51 +#: plugin/serializers.py:50 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:56 +#: plugin/serializers.py:55 msgid "Package Name" msgstr "" -#: plugin/serializers.py:57 +#: plugin/serializers.py:56 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:60 +#: plugin/serializers.py:59 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:61 +#: plugin/serializers.py:60 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:76 +#: plugin/serializers.py:75 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:78 +#: plugin/serializers.py:77 msgid "Either packagename of URL must be provided" msgstr "" @@ -5644,12 +5754,12 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:623 stock/templates/stock/item_base.html:151 +#: stock/models.py:659 stock/templates/stock/item_base.html:156 #: templates/js/translated/build.js:374 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:920 templates/js/translated/build.js:1308 -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/build.js:920 templates/js/translated/build.js:1326 +#: templates/js/translated/model_renderers.js:106 #: templates/js/translated/order.js:99 templates/js/translated/order.js:2142 -#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:431 +#: templates/js/translated/order.js:2231 templates/js/translated/stock.js:434 msgid "Serial Number" msgstr "序列号" @@ -5658,19 +5768,19 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2119 +#: stock/models.py:2183 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2125 +#: stock/models.py:2189 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/InvenTree/settings/plugin.html:50 +#: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin_settings.html:38 -#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2471 +#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2344 msgid "Date" msgstr "" @@ -5688,26 +5798,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:551 templates/js/translated/stock.js:721 -#: templates/js/translated/stock.js:2724 +#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:724 +#: templates/js/translated/stock.js:2593 msgid "Serial" msgstr "" -#: stock/api.py:503 +#: stock/api.py:543 msgid "Quantity is required" msgstr "" -#: stock/api.py:510 +#: stock/api.py:550 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:535 +#: stock/api.py:575 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/forms.py:74 stock/forms.py:198 stock/models.py:680 -#: stock/templates/stock/item_base.html:188 -#: templates/js/translated/stock.js:1800 +#: stock/forms.py:74 stock/forms.py:198 stock/models.py:717 +#: stock/templates/stock/item_base.html:193 +#: templates/js/translated/stock.js:1821 msgid "Expiry Date" msgstr "" @@ -5747,228 +5857,232 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:91 stock/models.py:717 -#: stock/templates/stock/item_base.html:402 +#: stock/models.py:93 stock/models.py:754 +#: stock/templates/stock/item_base.html:407 msgid "Owner" msgstr "" -#: stock/models.py:92 stock/models.py:718 +#: stock/models.py:94 stock/models.py:755 msgid "Select Owner" msgstr "" -#: stock/models.py:442 +#: stock/models.py:470 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:478 +#: stock/models.py:514 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:488 stock/models.py:497 +#: stock/models.py:524 stock/models.py:533 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:489 +#: stock/models.py:525 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:511 +#: stock/models.py:547 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:517 +#: stock/models.py:553 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:524 +#: stock/models.py:560 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:567 +#: stock/models.py:603 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:576 +#: stock/models.py:612 msgid "Base part" msgstr "" -#: stock/models.py:584 +#: stock/models.py:620 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:590 stock/templates/stock/location.html:16 +#: stock/models.py:626 stock/templates/stock/location.html:16 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:593 +#: stock/models.py:629 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:600 +#: stock/models.py:636 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:606 stock/templates/stock/item_base.html:277 +#: stock/models.py:642 stock/templates/stock/item_base.html:282 msgid "Installed In" msgstr "" -#: stock/models.py:609 +#: stock/models.py:645 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:625 +#: stock/models.py:661 msgid "Serial number for this item" msgstr "" -#: stock/models.py:639 +#: stock/models.py:675 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:643 +#: stock/models.py:680 msgid "Stock Quantity" msgstr "" -#: stock/models.py:652 +#: stock/models.py:689 msgid "Source Build" msgstr "" -#: stock/models.py:654 +#: stock/models.py:691 msgid "Build for this stock item" msgstr "" -#: stock/models.py:665 +#: stock/models.py:702 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:668 +#: stock/models.py:705 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:674 +#: stock/models.py:711 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:681 +#: stock/models.py:718 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete on deplete" msgstr "" -#: stock/models.py:694 +#: stock/models.py:731 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:704 stock/templates/stock/item.html:138 +#: stock/models.py:741 stock/templates/stock/item.html:137 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:713 +#: stock/models.py:750 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1238 +#: stock/models.py:782 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1302 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1244 +#: stock/models.py:1308 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1250 +#: stock/models.py:1314 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1253 +#: stock/models.py:1317 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1256 +#: stock/models.py:1320 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1263 +#: stock/models.py:1327 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1334 +#: stock/models.py:1398 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1337 +#: stock/models.py:1401 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1340 +#: stock/models.py:1404 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1343 +#: stock/models.py:1407 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1346 +#: stock/models.py:1410 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1349 +#: stock/models.py:1413 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1356 stock/serializers.py:832 +#: stock/models.py:1420 stock/serializers.py:832 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1360 +#: stock/models.py:1424 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1364 +#: stock/models.py:1428 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1368 +#: stock/models.py:1432 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1540 +#: stock/models.py:1604 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2039 +#: stock/models.py:2103 msgid "Entry notes" msgstr "" -#: stock/models.py:2096 +#: stock/models.py:2160 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2102 +#: stock/models.py:2166 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2120 +#: stock/models.py:2184 msgid "Test name" msgstr "" -#: stock/models.py:2126 +#: stock/models.py:2190 msgid "Test result" msgstr "" -#: stock/models.py:2132 +#: stock/models.py:2196 msgid "Test output value" msgstr "" -#: stock/models.py:2139 +#: stock/models.py:2203 msgid "Test result attachment" msgstr "" -#: stock/models.py:2145 +#: stock/models.py:2209 msgid "Test notes" msgstr "" @@ -5976,10 +6090,6 @@ msgstr "" msgid "Purchase price of this stock item" msgstr "" -#: stock/serializers.py:180 -msgid "Purchase currency of this stock item" -msgstr "" - #: stock/serializers.py:294 msgid "Enter number of stock items to serialize" msgstr "" @@ -6005,7 +6115,7 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:363 stock/views.py:1009 +#: stock/serializers.py:363 stock/views.py:1019 msgid "Serial numbers already exist" msgstr "序列号已存在" @@ -6081,11 +6191,11 @@ msgstr "" msgid "Stock transaction notes" msgstr "" -#: stock/templates/stock/item.html:18 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:23 +#: stock/templates/stock/item.html:22 msgid "New Entry" msgstr "" @@ -6102,7 +6212,7 @@ msgstr "" msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:57 +#: stock/templates/stock/item.html:95 stock/templates/stock/item_base.html:60 msgid "Test Report" msgstr "" @@ -6114,15 +6224,15 @@ msgstr "" msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:160 +#: stock/templates/stock/item.html:152 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:164 templates/js/translated/stock.js:2833 +#: stock/templates/stock/item.html:156 templates/js/translated/stock.js:2703 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:321 templates/js/translated/stock.js:1444 +#: stock/templates/stock/item.html:316 templates/js/translated/stock.js:1464 msgid "Add Test Result" msgstr "" @@ -6140,180 +6250,180 @@ msgstr "" msgid "Scan to Location" msgstr "" -#: stock/templates/stock/item_base.html:53 +#: stock/templates/stock/item_base.html:54 msgid "Printing actions" msgstr "" -#: stock/templates/stock/item_base.html:65 +#: stock/templates/stock/item_base.html:70 msgid "Stock adjustment actions" msgstr "" -#: stock/templates/stock/item_base.html:69 -#: stock/templates/stock/location.html:52 templates/stock_table.html:47 +#: stock/templates/stock/item_base.html:74 +#: stock/templates/stock/location.html:54 templates/stock_table.html:47 msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45 +#: stock/templates/stock/item_base.html:77 templates/stock_table.html:45 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46 +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:46 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:78 +#: stock/templates/stock/item_base.html:83 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:82 -#: stock/templates/stock/location.html:58 templates/stock_table.html:48 +#: stock/templates/stock/item_base.html:87 +#: stock/templates/stock/location.html:60 templates/stock_table.html:48 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51 +#: stock/templates/stock/item_base.html:90 templates/stock_table.html:51 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:88 +#: stock/templates/stock/item_base.html:93 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:96 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install stock item" msgstr "" -#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:100 msgid "Install" msgstr "" -#: stock/templates/stock/item_base.html:110 +#: stock/templates/stock/item_base.html:115 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:113 +#: stock/templates/stock/item_base.html:118 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:115 +#: stock/templates/stock/item_base.html:120 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:118 +#: stock/templates/stock/item_base.html:123 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:156 +#: stock/templates/stock/item_base.html:161 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:165 +#: stock/templates/stock/item_base.html:170 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:197 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:192 -#: templates/js/translated/table_filters.js:252 +#: stock/templates/stock/item_base.html:197 +#: templates/js/translated/table_filters.js:261 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:199 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:194 -#: templates/js/translated/table_filters.js:258 +#: stock/templates/stock/item_base.html:199 +#: templates/js/translated/table_filters.js:267 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:201 -#: templates/js/translated/stock.js:1816 +#: stock/templates/stock/item_base.html:206 +#: templates/js/translated/stock.js:1837 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:206 +#: stock/templates/stock/item_base.html:211 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:210 +#: stock/templates/stock/item_base.html:215 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:219 +#: stock/templates/stock/item_base.html:224 msgid "This stock item is in production and cannot be edited." msgstr "此库存项目正在生产中,无法编辑。" -#: stock/templates/stock/item_base.html:220 +#: stock/templates/stock/item_base.html:225 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:233 +#: stock/templates/stock/item_base.html:238 msgid "This stock item has not passed all required tests" msgstr "" -#: stock/templates/stock/item_base.html:241 +#: stock/templates/stock/item_base.html:246 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:249 +#: stock/templates/stock/item_base.html:254 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:255 +#: stock/templates/stock/item_base.html:260 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:296 -#: templates/js/translated/build.js:1330 +#: stock/templates/stock/item_base.html:301 +#: templates/js/translated/build.js:1348 msgid "No location set" msgstr "未设置仓储地点" -#: stock/templates/stock/item_base.html:303 +#: stock/templates/stock/item_base.html:308 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:345 +#: stock/templates/stock/item_base.html:350 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:363 +#: stock/templates/stock/item_base.html:368 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:388 +#: stock/templates/stock/item_base.html:393 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:406 +#: stock/templates/stock/item_base.html:411 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:407 -#: stock/templates/stock/location.html:116 +#: stock/templates/stock/item_base.html:412 +#: stock/templates/stock/location.html:118 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:481 +#: stock/templates/stock/item_base.html:486 msgid "Edit Stock Status" msgstr "" @@ -6334,66 +6444,59 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:40 msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:66 +#: stock/templates/stock/location.html:68 msgid "Location actions" msgstr "仓储地操作" -#: stock/templates/stock/location.html:68 +#: stock/templates/stock/location.html:70 msgid "Edit location" msgstr "编辑仓储地" -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:72 msgid "Delete location" msgstr "删除仓储地" -#: stock/templates/stock/location.html:79 +#: stock/templates/stock/location.html:81 msgid "Create new stock location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:80 +#: stock/templates/stock/location.html:82 msgid "New Location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:98 -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:106 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:105 +#: stock/templates/stock/location.html:107 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:113 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:115 +#: stock/templates/stock/location.html:117 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" -#: stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:178 +#: stock/templates/stock/location.html:133 +#: stock/templates/stock/location.html:180 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:145 templates/InvenTree/search.html:164 -#: templates/stats.html:109 users/models.py:42 +#: stock/templates/stock/location.html:147 templates/InvenTree/search.html:164 +#: templates/js/translated/search.js:145 templates/stats.html:109 +#: users/models.py:42 msgid "Stock Locations" msgstr "仓储地点" -#: stock/templates/stock/location.html:185 templates/stock_table.html:27 -msgid "Printing Actions" -msgstr "打印操作" - -#: stock/templates/stock/location.html:189 templates/stock_table.html:31 -msgid "Print labels" -msgstr "打印标签" - #: stock/templates/stock/location_delete.html:8 msgid "Are you sure you want to delete this stock location?" msgstr "确实要删除此仓储地点吗?" @@ -6467,11 +6570,11 @@ msgstr "" msgid "Are you sure you want to delete this stock tracking entry?" msgstr "" -#: stock/views.py:152 templates/js/translated/stock.js:137 +#: stock/views.py:152 templates/js/translated/stock.js:138 msgid "Edit Stock Location" msgstr "编辑仓储地点" -#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018 +#: stock/views.py:259 stock/views.py:610 stock/views.py:746 stock/views.py:1028 msgid "Owner is required (ownership control is enabled)" msgstr "" @@ -6511,7 +6614,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:479 templates/js/translated/stock.js:1039 +#: stock/views.py:479 templates/js/translated/stock.js:1046 msgid "Confirm stock adjustment" msgstr "" @@ -6519,71 +6622,72 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:512 templates/js/translated/stock.js:340 +#: stock/views.py:512 templates/js/translated/stock.js:343 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:662 +#: stock/views.py:672 msgid "Create new Stock Location" msgstr "新建仓储地点" -#: stock/views.py:763 +#: stock/views.py:773 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:905 templates/js/translated/stock.js:320 +#: stock/views.py:915 templates/js/translated/stock.js:323 msgid "Duplicate Stock Item" msgstr "" -#: stock/views.py:987 +#: stock/views.py:997 msgid "Quantity cannot be negative" msgstr "" -#: stock/views.py:1087 +#: stock/views.py:1097 msgid "Delete Stock Location" msgstr "删除仓储地点" -#: stock/views.py:1100 +#: stock/views.py:1110 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1111 +#: stock/views.py:1121 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1118 +#: stock/views.py:1128 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1127 +#: stock/views.py:1137 msgid "Add Stock Tracking Entry" msgstr "" -#: templates/403.html:5 templates/403.html:11 +#: templates/403.html:6 templates/403.html:12 msgid "Permission Denied" msgstr "" -#: templates/403.html:14 +#: templates/403.html:15 msgid "You do not have permission to view this page." msgstr "" -#: templates/404.html:5 templates/404.html:11 +#: templates/404.html:6 templates/404.html:12 msgid "Page Not Found" msgstr "" -#: templates/404.html:14 +#: templates/404.html:15 msgid "The requested page does not exist" msgstr "" -#: templates/500.html:5 templates/500.html:11 +#: templates/500.html:6 templates/500.html:12 msgid "Internal Server Error" msgstr "" -#: templates/500.html:14 -msgid "The InvenTree server raised an internal error" +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" msgstr "" -#: templates/500.html:15 +#: templates/500.html:16 msgid "Refer to the error log in the admin interface for further details" msgstr "" @@ -6623,6 +6727,10 @@ msgstr "" msgid "Depleted Stock" msgstr "" +#: templates/InvenTree/index.html:178 +msgid "Required for Build Orders" +msgstr "" + #: templates/InvenTree/index.html:191 msgid "Expired Stock" msgstr "" @@ -6655,6 +6763,70 @@ msgstr "" msgid "Overdue Sales Orders" msgstr "" +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +msgid "Refresh Notification History" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:16 +#: templates/InvenTree/notifications/inbox.html:17 +msgid "Refresh Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:51 +#: templates/InvenTree/settings/settings.html:314 +msgid "ID" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:57 +msgid "Age" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:88 +#: templates/InvenTree/settings/plugin.html:133 +msgid "Message" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:94 +#: templates/InvenTree/notifications/notifications.html:150 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:116 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:140 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + #: templates/InvenTree/search.html:8 msgid "Search Results" msgstr "" @@ -6700,7 +6872,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 -#: templates/InvenTree/settings/sidebar.html:29 +#: templates/InvenTree/settings/sidebar.html:31 msgid "Login Settings" msgstr "" @@ -6709,7 +6881,7 @@ msgid "Signup" msgstr "" #: templates/InvenTree/settings/mixins/settings.html:5 -#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:138 msgid "Settings" msgstr "设置" @@ -6747,49 +6919,49 @@ msgid "Plugin Settings" msgstr "" #: templates/InvenTree/settings/plugin.html:16 -msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." +msgid "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." msgstr "" -#: templates/InvenTree/settings/plugin.html:33 +#: templates/InvenTree/settings/plugin.html:34 msgid "Plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/plugin.html:39 #: templates/js/translated/plugin.js:15 msgid "Install Plugin" msgstr "" -#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111 +#: templates/InvenTree/settings/plugin.html:48 templates/navbar.html:136 #: users/models.py:39 msgid "Admin" msgstr "管理员" -#: templates/InvenTree/settings/plugin.html:49 +#: templates/InvenTree/settings/plugin.html:50 #: templates/InvenTree/settings/plugin_settings.html:28 msgid "Author" msgstr "" -#: templates/InvenTree/settings/plugin.html:51 +#: templates/InvenTree/settings/plugin.html:52 #: templates/InvenTree/settings/plugin_settings.html:43 msgid "Version" msgstr "" -#: templates/InvenTree/settings/plugin.html:92 +#: templates/InvenTree/settings/plugin.html:82 +msgid "code sample" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:99 msgid "Inactive plugins" msgstr "" -#: templates/InvenTree/settings/plugin.html:115 +#: templates/InvenTree/settings/plugin.html:122 msgid "Plugin Error Stack" msgstr "" -#: templates/InvenTree/settings/plugin.html:124 +#: templates/InvenTree/settings/plugin.html:131 msgid "Stage" msgstr "" -#: templates/InvenTree/settings/plugin.html:126 -msgid "Message" -msgstr "" - #: templates/InvenTree/settings/plugin_settings.html:10 #, python-format msgid "Plugin details for %(name)s" @@ -6824,7 +6996,7 @@ msgid "This plugin was installed as a package" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:88 -msgid "This plugin was found in a local InvenTree path" +msgid "This plugin was found in a local server path" msgstr "" #: templates/InvenTree/settings/plugin_settings.html:94 @@ -6874,40 +7046,36 @@ msgstr "未设置值" msgid "Edit setting" msgstr "编辑设置" -#: templates/InvenTree/settings/settings.html:115 +#: templates/InvenTree/settings/settings.html:116 msgid "Edit Plugin Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:117 +#: templates/InvenTree/settings/settings.html:118 msgid "Edit Global Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:119 +#: templates/InvenTree/settings/settings.html:120 msgid "Edit User Setting" msgstr "" -#: templates/InvenTree/settings/settings.html:208 +#: templates/InvenTree/settings/settings.html:209 msgid "No category parameter templates found" msgstr "未找到类别参数模板" -#: templates/InvenTree/settings/settings.html:230 -#: templates/InvenTree/settings/settings.html:329 +#: templates/InvenTree/settings/settings.html:231 +#: templates/InvenTree/settings/settings.html:330 msgid "Edit Template" msgstr "编辑模板" -#: templates/InvenTree/settings/settings.html:231 -#: templates/InvenTree/settings/settings.html:330 +#: templates/InvenTree/settings/settings.html:232 +#: templates/InvenTree/settings/settings.html:331 msgid "Delete Template" msgstr "删除模板" -#: templates/InvenTree/settings/settings.html:309 +#: templates/InvenTree/settings/settings.html:310 msgid "No part parameter templates found" msgstr "未找到商品参数模板" -#: templates/InvenTree/settings/settings.html:313 -msgid "ID" -msgstr "" - #: templates/InvenTree/settings/sidebar.html:6 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" @@ -6932,28 +7100,28 @@ msgstr "" msgid "Search Settings" msgstr "搜索设置" -#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:19 msgid "Label Printing" msgstr "" -#: templates/InvenTree/settings/sidebar.html:19 -#: templates/InvenTree/settings/sidebar.html:35 +#: templates/InvenTree/settings/sidebar.html:21 +#: templates/InvenTree/settings/sidebar.html:37 msgid "Reporting" msgstr "" -#: templates/InvenTree/settings/sidebar.html:24 +#: templates/InvenTree/settings/sidebar.html:26 msgid "Global Settings" msgstr "" -#: templates/InvenTree/settings/sidebar.html:27 +#: templates/InvenTree/settings/sidebar.html:29 msgid "Server Configuration" msgstr "" -#: templates/InvenTree/settings/sidebar.html:33 +#: templates/InvenTree/settings/sidebar.html:35 msgid "Currencies" msgstr "" -#: templates/InvenTree/settings/sidebar.html:39 +#: templates/InvenTree/settings/sidebar.html:41 msgid "Categories" msgstr "" @@ -6972,7 +7140,8 @@ msgid "Change Password" msgstr "更改密码" #: templates/InvenTree/settings/user.html:22 -#: templates/js/translated/helpers.js:26 +#: templates/js/translated/helpers.js:27 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" @@ -7183,7 +7352,7 @@ msgstr "帮助翻译工作!" #: templates/InvenTree/settings/user_display.html:104 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" #: templates/InvenTree/settings/user_homepage.html:9 @@ -7194,6 +7363,10 @@ msgstr "主页设置" msgid "Label Settings" msgstr "标签设置" +#: templates/InvenTree/settings/user_notifications.html:8 +msgid "Notification Settings" +msgstr "" + #: templates/about.html:10 msgid "InvenTree Version Information" msgstr "" @@ -7278,37 +7451,29 @@ msgstr "" msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." msgstr "" -#: templates/account/login.html:6 templates/account/login.html:16 -#: templates/account/login.html:39 +#: templates/account/login.html:6 templates/account/login.html:17 +#: templates/account/login.html:43 msgid "Sign In" msgstr "" -#: templates/account/login.html:21 +#: templates/account/login.html:22 #, python-format msgid "Please sign in with one\n" "of your existing third party accounts or sign up\n" "for a account and sign in below:" msgstr "" -#: templates/account/login.html:25 +#: templates/account/login.html:26 #, python-format msgid "If you have not created an account yet, then please\n" "sign up first." msgstr "" -#: templates/account/login.html:42 +#: templates/account/login.html:46 msgid "Forgot Password?" msgstr "" -#: templates/account/login.html:47 -msgid "InvenTree demo instance" -msgstr "" - -#: templates/account/login.html:47 -msgid "Click here for login details" -msgstr "" - -#: templates/account/login.html:55 +#: templates/account/login.html:52 msgid "or use SSO" msgstr "" @@ -7449,15 +7614,15 @@ msgstr "" msgid "Add Attachment" msgstr "添加附件" -#: templates/base.html:97 +#: templates/base.html:100 msgid "Server Restart Required" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "A configuration option has been changed which requires a server restart" msgstr "" -#: templates/base.html:100 +#: templates/base.html:103 msgid "Contact your system administrator for further information" msgstr "" @@ -7479,14 +7644,15 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1340 +#: templates/js/translated/bom.js:1378 msgid "Required Quantity" msgstr "" #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1424 -#: templates/js/translated/build.js:2125 +#: templates/js/translated/bom.js:818 templates/js/translated/build.js:1442 +#: templates/js/translated/build.js:2193 templates/js/translated/part.js:522 +#: templates/js/translated/part.js:525 #: templates/js/translated/table_filters.js:178 msgid "Available" msgstr "空闲" @@ -7496,15 +7662,6 @@ msgstr "空闲" msgid "You are receiving this email because you are subscribed to notifications for this part " msgstr "" -#: templates/email/email.html:35 -msgid "InvenTree version" -msgstr "" - -#: templates/email/low_stock_notification.html:7 -#, python-format -msgid " The available stock for %(part)s has fallen below the configured minimum level" -msgstr "" - #: templates/email/low_stock_notification.html:9 msgid "Click on the following link to view this part" msgstr "" @@ -7529,67 +7686,67 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1056 +#: templates/js/translated/api.js:190 templates/js/translated/modals.js:1056 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1057 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1057 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:197 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:193 +#: templates/js/translated/api.js:198 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1066 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1066 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1067 +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1067 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1071 +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1071 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1072 +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1072 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1076 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1076 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1077 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1077 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:212 +#: templates/js/translated/api.js:217 msgid "Error 405: Method Not Allowed" msgstr "" -#: templates/js/translated/api.js:213 +#: templates/js/translated/api.js:218 msgid "HTTP method not allowed at URL" msgstr "" -#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1081 +#: templates/js/translated/api.js:222 templates/js/translated/modals.js:1081 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1082 +#: templates/js/translated/api.js:223 templates/js/translated/modals.js:1082 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:221 +#: templates/js/translated/api.js:226 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:222 +#: templates/js/translated/api.js:227 msgid "Error code" msgstr "" @@ -7658,7 +7815,7 @@ msgstr "" msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:280 templates/navbar.html:94 +#: templates/js/translated/barcode.js:280 templates/navbar.html:108 msgid "Scan Barcode" msgstr "扫描条形码" @@ -7678,45 +7835,44 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:991 +#: templates/js/translated/barcode.js:403 templates/js/translated/stock.js:998 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:439 +#: templates/js/translated/barcode.js:445 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:443 -#: templates/js/translated/barcode.js:573 +#: templates/js/translated/barcode.js:449 +#: templates/js/translated/barcode.js:581 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:485 -#: templates/js/translated/barcode.js:612 -msgid "Error transferring stock" +#: templates/js/translated/barcode.js:480 +msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:507 +#: templates/js/translated/barcode.js:515 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:511 +#: templates/js/translated/barcode.js:519 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:518 +#: templates/js/translated/barcode.js:526 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:525 +#: templates/js/translated/barcode.js:533 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:576 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:633 +#: templates/js/translated/barcode.js:639 msgid "Barcode does not match a valid location" msgstr "" @@ -7814,67 +7970,84 @@ msgstr "" msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:739 +#: templates/js/translated/bom.js:755 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1406 +#: templates/js/translated/bom.js:759 templates/js/translated/build.js:1424 msgid "Variant stock allowed" msgstr "" -#: templates/js/translated/bom.js:748 +#: templates/js/translated/bom.js:764 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:820 +#: templates/js/translated/bom.js:834 templates/js/translated/build.js:1469 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:838 templates/js/translated/build.js:1473 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:840 templates/js/translated/build.js:1475 +#: templates/js/translated/part.js:685 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:842 templates/js/translated/build.js:1477 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:856 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:835 +#: templates/js/translated/bom.js:871 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:842 +#: templates/js/translated/bom.js:878 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980 +#: templates/js/translated/bom.js:927 templates/js/translated/bom.js:1018 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:951 +#: templates/js/translated/bom.js:989 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:953 +#: templates/js/translated/bom.js:991 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:955 +#: templates/js/translated/bom.js:993 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143 +#: templates/js/translated/bom.js:995 templates/js/translated/bom.js:1181 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1164 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138 +#: templates/js/translated/bom.js:1104 templates/js/translated/build.js:1156 msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1121 +#: templates/js/translated/bom.js:1159 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1390 +#: templates/js/translated/bom.js:1361 templates/js/translated/build.js:1408 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:1345 +#: templates/js/translated/bom.js:1383 msgid "Inherited from parent BOM" msgstr "" @@ -7899,12 +8072,12 @@ msgid "Complete Build Order" msgstr "生产订单完成" #: templates/js/translated/build.js:215 templates/js/translated/stock.js:90 -#: templates/js/translated/stock.js:179 +#: templates/js/translated/stock.js:180 msgid "Next available serial number" msgstr "" #: templates/js/translated/build.js:217 templates/js/translated/stock.js:92 -#: templates/js/translated/stock.js:181 +#: templates/js/translated/stock.js:182 msgid "Latest serial number" msgstr "" @@ -7984,141 +8157,149 @@ msgstr "未指定仓储地点" msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1347 templates/js/translated/build.js:2136 +#: templates/js/translated/build.js:1365 templates/js/translated/build.js:2204 #: templates/js/translated/order.js:2179 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:1349 templates/js/translated/build.js:2137 +#: templates/js/translated/build.js:1367 templates/js/translated/build.js:2205 #: templates/js/translated/order.js:2180 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:1367 +#: templates/js/translated/build.js:1385 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:1377 +#: templates/js/translated/build.js:1395 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:1402 +#: templates/js/translated/build.js:1420 msgid "Substitute parts available" msgstr "" -#: templates/js/translated/build.js:1419 +#: templates/js/translated/build.js:1437 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:1429 templates/js/translated/build.js:1681 -#: templates/js/translated/build.js:2132 templates/js/translated/order.js:2446 +#: templates/js/translated/build.js:1463 +msgid "Insufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1465 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:1494 templates/js/translated/build.js:1749 +#: templates/js/translated/build.js:2200 templates/js/translated/order.js:2446 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1443 +#: templates/js/translated/build.js:1508 msgid "loading" msgstr "" -#: templates/js/translated/build.js:1487 templates/js/translated/order.js:2526 +#: templates/js/translated/build.js:1552 templates/js/translated/order.js:2526 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:1491 templates/stock_table.html:50 +#: templates/js/translated/build.js:1556 templates/stock_table.html:50 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1494 templates/js/translated/order.js:2519 +#: templates/js/translated/build.js:1559 templates/js/translated/order.js:2519 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:1533 templates/js/translated/label.js:134 +#: templates/js/translated/build.js:1598 templates/js/translated/label.js:172 #: templates/js/translated/order.js:1755 templates/js/translated/report.js:225 msgid "Select Parts" msgstr "选择商品" -#: templates/js/translated/build.js:1534 templates/js/translated/order.js:1756 +#: templates/js/translated/build.js:1599 templates/js/translated/order.js:1756 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1583 templates/js/translated/order.js:1704 +#: templates/js/translated/build.js:1648 templates/js/translated/order.js:1704 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1654 +#: templates/js/translated/build.js:1722 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1655 +#: templates/js/translated/build.js:1723 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1669 templates/js/translated/order.js:1770 +#: templates/js/translated/build.js:1737 templates/js/translated/order.js:1770 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1698 templates/js/translated/order.js:1805 +#: templates/js/translated/build.js:1766 templates/js/translated/order.js:1805 msgid "Confirm stock allocation" msgstr "确认库存分配" -#: templates/js/translated/build.js:1699 +#: templates/js/translated/build.js:1767 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1710 templates/js/translated/order.js:1818 +#: templates/js/translated/build.js:1778 templates/js/translated/order.js:1818 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:1782 templates/js/translated/order.js:1895 +#: templates/js/translated/build.js:1850 templates/js/translated/order.js:1895 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:1879 +#: templates/js/translated/build.js:1947 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:1880 +#: templates/js/translated/build.js:1948 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:1882 +#: templates/js/translated/build.js:1950 msgid "If a location is specifed, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:1883 +#: templates/js/translated/build.js:1951 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:1884 +#: templates/js/translated/build.js:1952 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:1905 +#: templates/js/translated/build.js:1973 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:1943 +#: templates/js/translated/build.js:2011 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1960 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:1648 templates/js/translated/stock.js:1608 -#: templates/js/translated/stock.js:2425 +#: templates/js/translated/build.js:2028 templates/js/translated/part.js:1309 +#: templates/js/translated/part.js:1736 templates/js/translated/stock.js:1628 +#: templates/js/translated/stock.js:2281 msgid "Select" msgstr "" -#: templates/js/translated/build.js:1980 +#: templates/js/translated/build.js:2048 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2044 templates/js/translated/stock.js:2637 +#: templates/js/translated/build.js:2112 templates/js/translated/stock.js:2523 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:2056 +#: templates/js/translated/build.js:2124 msgid "No information" msgstr "" -#: templates/js/translated/build.js:2113 +#: templates/js/translated/build.js:2181 msgid "No parts allocated for" msgstr "" @@ -8183,34 +8364,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:500 -#: templates/js/translated/company.js:757 templates/js/translated/part.js:519 -#: templates/js/translated/part.js:604 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:560 +#: templates/js/translated/part.js:645 msgid "Template part" msgstr "" #: templates/js/translated/company.js:504 -#: templates/js/translated/company.js:761 templates/js/translated/part.js:523 -#: templates/js/translated/part.js:608 +#: templates/js/translated/company.js:761 templates/js/translated/part.js:564 +#: templates/js/translated/part.js:649 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:631 templates/js/translated/part.js:698 +#: templates/js/translated/company.js:631 templates/js/translated/part.js:752 msgid "No parameters found" msgstr "无指定参数" -#: templates/js/translated/company.js:668 templates/js/translated/part.js:740 +#: templates/js/translated/company.js:668 templates/js/translated/part.js:794 msgid "Edit parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:669 templates/js/translated/part.js:741 +#: templates/js/translated/company.js:669 templates/js/translated/part.js:795 msgid "Delete parameter" msgstr "删除参数" -#: templates/js/translated/company.js:688 templates/js/translated/part.js:758 +#: templates/js/translated/company.js:688 templates/js/translated/part.js:812 msgid "Edit Parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:699 templates/js/translated/part.js:770 +#: templates/js/translated/company.js:699 templates/js/translated/part.js:824 msgid "Delete Parameter" msgstr "删除参数" @@ -8290,7 +8471,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1833 +#: templates/js/translated/forms.js:1833 templates/search.html:29 msgid "Searching" msgstr "" @@ -8310,61 +8491,73 @@ msgstr "" msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:19 +#: templates/js/translated/helpers.js:20 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:21 +#: templates/js/translated/helpers.js:22 msgid "NO" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:1015 +#: templates/js/translated/helpers.js:305 +msgid "Notes updated" +msgstr "" + +#: templates/js/translated/label.js:39 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/label.js:60 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:1022 msgid "Select Stock Items" msgstr "选择库存项" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:61 msgid "Stock item(s) must be selected before printing labels" msgstr "打印标签前必须选择库存项目" -#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 -#: templates/js/translated/label.js:153 +#: templates/js/translated/label.js:79 templates/js/translated/label.js:133 +#: templates/js/translated/label.js:191 msgid "No Labels Found" msgstr "未找到标签" -#: templates/js/translated/label.js:49 +#: templates/js/translated/label.js:80 msgid "No labels found which match selected stock item(s)" msgstr "没有找到与选定的库存项匹配的标签" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:115 msgid "Select Stock Locations" msgstr "选择仓储地点" -#: templates/js/translated/label.js:81 +#: templates/js/translated/label.js:116 msgid "Stock location(s) must be selected before printing labels" msgstr "打印标签前必须选择仓储地点" -#: templates/js/translated/label.js:99 +#: templates/js/translated/label.js:134 msgid "No labels found which match selected stock location(s)" msgstr "没有找到匹配选定库存地点的标签" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:173 msgid "Part(s) must be selected before printing labels" msgstr "打印标签前必须选择商品" -#: templates/js/translated/label.js:154 +#: templates/js/translated/label.js:192 msgid "No labels found which match the selected part(s)" msgstr "没有找到与所选商品相匹配的标签" -#: templates/js/translated/label.js:228 +#: templates/js/translated/label.js:261 +msgid "Select Printer" +msgstr "" + +#: templates/js/translated/label.js:265 +msgid "Export to PDF" +msgstr "" + +#: templates/js/translated/label.js:304 msgid "stock items selected" msgstr "已选择库存项" -#: templates/js/translated/label.js:236 -msgid "Select Label" -msgstr "选择标签" - -#: templates/js/translated/label.js:251 +#: templates/js/translated/label.js:312 templates/js/translated/label.js:328 msgid "Select Label Template" msgstr "选择标签模板" @@ -8427,43 +8620,59 @@ msgstr "" msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:40 +#: templates/js/translated/model_renderers.js:60 msgid "Company ID" msgstr "公司ID" -#: templates/js/translated/model_renderers.js:77 +#: templates/js/translated/model_renderers.js:123 msgid "Stock ID" msgstr "" -#: templates/js/translated/model_renderers.js:130 +#: templates/js/translated/model_renderers.js:149 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:147 +#: templates/js/translated/model_renderers.js:166 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:249 -#: templates/js/translated/model_renderers.js:270 +#: templates/js/translated/model_renderers.js:265 +#: templates/js/translated/model_renderers.js:291 msgid "Order ID" msgstr "" -#: templates/js/translated/model_renderers.js:287 +#: templates/js/translated/model_renderers.js:306 msgid "Shipment ID" msgstr "" -#: templates/js/translated/model_renderers.js:307 +#: templates/js/translated/model_renderers.js:326 msgid "Category ID" msgstr "类别 ID" -#: templates/js/translated/model_renderers.js:344 +#: templates/js/translated/model_renderers.js:369 msgid "Manufacturer Part ID" msgstr "制造商商品ID" -#: templates/js/translated/model_renderers.js:373 +#: templates/js/translated/model_renderers.js:398 msgid "Supplier Part ID" msgstr "供应商商品ID" +#: templates/js/translated/notification.js:231 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:235 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:259 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:300 templates/notifications.html:10 +msgid "Notifications will load here" +msgstr "" + #: templates/js/translated/order.js:75 msgid "No stock items have been allocated to this shipment" msgstr "" @@ -8516,7 +8725,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2228 +#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2084 msgid "Stock Status" msgstr "" @@ -8540,7 +8749,7 @@ msgstr "" msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/order.js:925 templates/js/translated/part.js:811 +#: templates/js/translated/order.js:925 templates/js/translated/part.js:865 msgid "No purchase orders found" msgstr "" @@ -8569,7 +8778,7 @@ msgid "Total" msgstr "" #: templates/js/translated/order.js:1241 templates/js/translated/order.js:2360 -#: templates/js/translated/part.js:1865 templates/js/translated/part.js:2209 +#: templates/js/translated/part.js:1955 templates/js/translated/part.js:2308 msgid "Unit Price" msgstr "单价" @@ -8578,11 +8787,11 @@ msgid "Total Price" msgstr "" #: templates/js/translated/order.js:1297 templates/js/translated/order.js:2418 -#: templates/js/translated/part.js:920 +#: templates/js/translated/part.js:974 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/order.js:1356 templates/js/translated/part.js:966 +#: templates/js/translated/order.js:1356 templates/js/translated/part.js:1020 msgid "Receive line item" msgstr "" @@ -8663,7 +8872,7 @@ msgid "Delete Stock Allocation" msgstr "" #: templates/js/translated/order.js:2156 templates/js/translated/order.js:2245 -#: templates/js/translated/stock.js:1524 +#: templates/js/translated/stock.js:1544 msgid "Shipped to customer" msgstr "" @@ -8783,169 +8992,177 @@ msgstr "" msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:339 +#: templates/js/translated/part.js:340 msgid "Edit Part" msgstr "编辑商品" -#: templates/js/translated/part.js:341 +#: templates/js/translated/part.js:342 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:352 +#: templates/js/translated/part.js:353 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:419 +#: templates/js/translated/part.js:423 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:421 +#: templates/js/translated/part.js:425 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:426 +#: templates/js/translated/part.js:430 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:428 +#: templates/js/translated/part.js:432 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:445 +#: templates/js/translated/part.js:449 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:455 +#: templates/js/translated/part.js:459 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:458 +#: templates/js/translated/part.js:462 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:483 +#: templates/js/translated/part.js:487 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:511 templates/js/translated/part.js:596 -msgid "Trackable part" -msgstr "可追溯商品" - -#: templates/js/translated/part.js:515 templates/js/translated/part.js:600 -msgid "Virtual part" -msgstr "虚拟商品" - -#: templates/js/translated/part.js:527 -msgid "Subscribed part" -msgstr "" - -#: templates/js/translated/part.js:531 -msgid "Salable part" -msgstr "可销售商品" - -#: templates/js/translated/part.js:646 -msgid "No variants found" -msgstr "" - -#: templates/js/translated/part.js:1036 -msgid "Delete part relationship" -msgstr "" - -#: templates/js/translated/part.js:1060 -msgid "Delete Part Relationship" -msgstr "" - -#: templates/js/translated/part.js:1127 templates/js/translated/part.js:1387 -msgid "No parts found" -msgstr "" - -#: templates/js/translated/part.js:1297 -msgid "No category" -msgstr "没有分类" - -#: templates/js/translated/part.js:1320 -#: templates/js/translated/table_filters.js:434 +#: templates/js/translated/part.js:508 templates/js/translated/part.js:1392 +#: templates/js/translated/table_filters.js:452 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1411 templates/js/translated/part.js:1583 -#: templates/js/translated/stock.js:2386 +#: templates/js/translated/part.js:518 templates/js/translated/part.js:1404 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:552 templates/js/translated/part.js:637 +msgid "Trackable part" +msgstr "可追溯商品" + +#: templates/js/translated/part.js:556 templates/js/translated/part.js:641 +msgid "Virtual part" +msgstr "虚拟商品" + +#: templates/js/translated/part.js:568 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:572 +msgid "Salable part" +msgstr "可销售商品" + +#: templates/js/translated/part.js:700 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1090 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1114 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:1179 templates/js/translated/part.js:1475 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:1218 +msgid "Not available" +msgstr "" + +#: templates/js/translated/part.js:1369 +msgid "No category" +msgstr "没有分类" + +#: templates/js/translated/part.js:1499 templates/js/translated/part.js:1671 +#: templates/js/translated/stock.js:2242 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1427 +#: templates/js/translated/part.js:1515 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1602 templates/js/translated/stock.js:2405 +#: templates/js/translated/part.js:1690 templates/js/translated/stock.js:2261 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1666 +#: templates/js/translated/part.js:1754 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1680 templates/js/translated/stock.js:2449 +#: templates/js/translated/part.js:1768 templates/js/translated/stock.js:2305 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1724 +#: templates/js/translated/part.js:1812 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1235 +#: templates/js/translated/part.js:1863 templates/js/translated/stock.js:1242 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1776 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/part.js:1864 templates/js/translated/stock.js:1243 +#: templates/js/translated/stock.js:1502 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1782 +#: templates/js/translated/part.js:1870 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1804 +#: templates/js/translated/part.js:1892 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1818 +#: templates/js/translated/part.js:1906 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1843 +#: templates/js/translated/part.js:1931 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1898 +#: templates/js/translated/part.js:1988 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1899 +#: templates/js/translated/part.js:1989 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:2004 +#: templates/js/translated/part.js:2103 msgid "Current Stock" msgstr "" -#: templates/js/translated/part.js:2037 +#: templates/js/translated/part.js:2136 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:2063 +#: templates/js/translated/part.js:2162 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:2133 +#: templates/js/translated/part.js:2232 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2251 msgid "Single Price Difference" msgstr "" @@ -9019,6 +9236,14 @@ msgstr "" msgid "Sales Order(s) must be selected before printing report" msgstr "" +#: templates/js/translated/search.js:286 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:289 +msgid "Remove results" +msgstr "" + #: templates/js/translated/stock.js:72 msgid "Serialize Stock Item" msgstr "" @@ -9031,344 +9256,328 @@ msgstr "" msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:152 +#: templates/js/translated/stock.js:153 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:192 +#: templates/js/translated/stock.js:193 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:231 +#: templates/js/translated/stock.js:232 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:237 +#: templates/js/translated/stock.js:238 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:300 +#: templates/js/translated/stock.js:303 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:393 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:403 +#: templates/js/translated/stock.js:406 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:428 +#: templates/js/translated/stock.js:431 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:432 templates/js/translated/stock.js:433 +#: templates/js/translated/stock.js:435 templates/js/translated/stock.js:436 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:449 +#: templates/js/translated/stock.js:452 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:469 +#: templates/js/translated/stock.js:472 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:478 +#: templates/js/translated/stock.js:481 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:601 +#: templates/js/translated/stock.js:604 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:602 +#: templates/js/translated/stock.js:605 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:679 +#: templates/js/translated/stock.js:682 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:680 +#: templates/js/translated/stock.js:683 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:685 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:683 +#: templates/js/translated/stock.js:686 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:769 +#: templates/js/translated/stock.js:772 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:770 +#: templates/js/translated/stock.js:773 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:868 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:869 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:872 +#: templates/js/translated/stock.js:875 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:876 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:880 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:878 +#: templates/js/translated/stock.js:881 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:882 +#: templates/js/translated/stock.js:885 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:883 users/models.py:213 +#: templates/js/translated/stock.js:886 users/models.py:214 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:890 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:983 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1016 +#: templates/js/translated/stock.js:1023 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1181 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1183 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1188 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1228 +#: templates/js/translated/stock.js:1235 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1231 +#: templates/js/translated/stock.js:1238 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1257 +#: templates/js/translated/stock.js:1264 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1313 +#: templates/js/translated/stock.js:1320 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1465 +#: templates/js/translated/stock.js:1485 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1487 +#: templates/js/translated/stock.js:1507 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1516 +#: templates/js/translated/stock.js:1536 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:1520 +#: templates/js/translated/stock.js:1540 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1528 +#: templates/js/translated/stock.js:1548 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1554 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:1692 +#: templates/js/translated/stock.js:1712 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:1697 +#: templates/js/translated/stock.js:1717 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1700 +#: templates/js/translated/stock.js:1720 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1704 +#: templates/js/translated/stock.js:1724 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1706 +#: templates/js/translated/stock.js:1726 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1712 +#: templates/js/translated/stock.js:1732 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1714 +#: templates/js/translated/stock.js:1734 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:1716 +#: templates/js/translated/stock.js:1736 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:1721 +#: templates/js/translated/stock.js:1741 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1728 +#: templates/js/translated/stock.js:1748 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1730 +#: templates/js/translated/stock.js:1750 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1732 +#: templates/js/translated/stock.js:1752 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1736 +#: templates/js/translated/stock.js:1756 #: templates/js/translated/table_filters.js:188 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1786 +#: templates/js/translated/stock.js:1807 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1868 +#: templates/js/translated/stock.js:1889 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1906 +#: templates/js/translated/stock.js:1927 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1927 templates/js/translated/stock.js:1975 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:2015 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:2042 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:2044 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:2243 +#: templates/js/translated/stock.js:2099 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:2257 +#: templates/js/translated/stock.js:2113 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:2258 +#: templates/js/translated/stock.js:2114 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:2496 +#: templates/js/translated/stock.js:2369 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2521 +#: templates/js/translated/stock.js:2385 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2407 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2540 +#: templates/js/translated/stock.js:2426 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2559 +#: templates/js/translated/stock.js:2445 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2577 +#: templates/js/translated/stock.js:2463 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2600 +#: templates/js/translated/stock.js:2486 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2608 +#: templates/js/translated/stock.js:2494 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2649 -msgid "Edit tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2650 -msgid "Delete tracking entry" -msgstr "" - -#: templates/js/translated/stock.js:2701 +#: templates/js/translated/stock.js:2570 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2752 +#: templates/js/translated/stock.js:2621 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:2788 +#: templates/js/translated/stock.js:2657 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2658 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:2791 +#: templates/js/translated/stock.js:2660 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:2792 +#: templates/js/translated/stock.js:2661 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:2793 -msgid "The Stock Item is serialized and does not belong to another item" +#: templates/js/translated/stock.js:2662 +msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:2806 +#: templates/js/translated/stock.js:2663 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:2676 msgid "Select part to install" msgstr "" @@ -9399,12 +9608,12 @@ msgstr "" #: templates/js/translated/table_filters.js:121 #: templates/js/translated/table_filters.js:122 -#: templates/js/translated/table_filters.js:411 +#: templates/js/translated/table_filters.js:429 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:126 -#: templates/js/translated/table_filters.js:446 +#: templates/js/translated/table_filters.js:468 msgid "Subscribed" msgstr "" @@ -9441,12 +9650,12 @@ msgid "Serial number" msgstr "" #: templates/js/translated/table_filters.js:152 -#: templates/js/translated/table_filters.js:239 +#: templates/js/translated/table_filters.js:243 msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:163 -#: templates/js/translated/table_filters.js:383 +#: templates/js/translated/table_filters.js:401 msgid "Active parts" msgstr "" @@ -9515,64 +9724,88 @@ msgstr "" msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:243 +#: templates/js/translated/table_filters.js:238 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:246 +msgid "Tracked" +msgstr "" + +#: templates/js/translated/table_filters.js:247 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:252 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:244 +#: templates/js/translated/table_filters.js:253 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:253 +#: templates/js/translated/table_filters.js:262 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:259 +#: templates/js/translated/table_filters.js:268 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:280 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:284 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:303 msgid "Build status" msgstr "生产状态" -#: templates/js/translated/table_filters.js:298 -#: templates/js/translated/table_filters.js:339 +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:357 msgid "Assigned to me" msgstr "" -#: templates/js/translated/table_filters.js:315 -#: templates/js/translated/table_filters.js:326 -#: templates/js/translated/table_filters.js:356 +#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:344 +#: templates/js/translated/table_filters.js:374 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:331 -#: templates/js/translated/table_filters.js:348 -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:366 +#: templates/js/translated/table_filters.js:379 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:412 +#: templates/js/translated/table_filters.js:430 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:416 +#: templates/js/translated/table_filters.js:434 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:417 +#: templates/js/translated/table_filters.js:435 msgid "Part has internal part number" msgstr "商品有内部编号" -#: templates/js/translated/table_filters.js:422 +#: templates/js/translated/table_filters.js:440 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:430 -msgid "Stock available" +#: templates/js/translated/table_filters.js:448 +msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:458 +#: templates/js/translated/table_filters.js:456 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:480 msgid "Purchasable" msgstr "" @@ -9612,7 +9845,8 @@ msgstr "" msgid "rows" msgstr "" -#: templates/js/translated/tables.js:447 templates/search_form.html:6 +#: templates/js/translated/tables.js:447 templates/navbar.html:101 +#: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" msgstr "搜索" @@ -9641,28 +9875,40 @@ msgstr "" msgid "All" msgstr "" -#: templates/navbar.html:42 +#: templates/navbar.html:44 msgid "Buy" msgstr "采购" -#: templates/navbar.html:54 +#: templates/navbar.html:56 msgid "Sell" msgstr "销售" -#: templates/navbar.html:114 +#: templates/navbar.html:115 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:118 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:139 msgid "Logout" msgstr "" -#: templates/navbar.html:116 +#: templates/navbar.html:141 msgid "Login" msgstr "" -#: templates/navbar.html:136 +#: templates/navbar.html:162 msgid "About InvenTree" msgstr "" -#: templates/navbar_demo.html:5 -msgid "InvenTree demo mode" +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:13 +msgid "Show all notifications and history" msgstr "" #: templates/qr_code.html:11 @@ -9677,6 +9923,26 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:16 +msgid "Filter results" +msgstr "" + +#: templates/search.html:20 +msgid "Close search menu" +msgstr "" + +#: templates/search.html:35 +msgid "No search results" +msgstr "" + #: templates/stats.html:9 msgid "Server" msgstr "" @@ -9829,35 +10095,35 @@ msgstr "权限" msgid "Important dates" msgstr "重要日期" -#: users/models.py:200 +#: users/models.py:201 msgid "Permission set" msgstr "权限设置" -#: users/models.py:208 +#: users/models.py:209 msgid "Group" msgstr "群组" -#: users/models.py:211 +#: users/models.py:212 msgid "View" msgstr "视图" -#: users/models.py:211 +#: users/models.py:212 msgid "Permission to view items" msgstr "查看项目权限" -#: users/models.py:213 +#: users/models.py:214 msgid "Permission to add items" msgstr "添加项目权限" -#: users/models.py:215 +#: users/models.py:216 msgid "Change" msgstr "更改" -#: users/models.py:215 +#: users/models.py:216 msgid "Permissions to edit items" msgstr "编辑项目权限" -#: users/models.py:217 +#: users/models.py:218 msgid "Permission to delete items" msgstr "删除项目权限" diff --git a/InvenTree/order/templates/order/order_wizard/po_upload.html b/InvenTree/order/templates/order/order_wizard/po_upload.html index b101cfc8b5..d33d27f6c6 100644 --- a/InvenTree/order/templates/order/order_wizard/po_upload.html +++ b/InvenTree/order/templates/order/order_wizard/po_upload.html @@ -11,10 +11,14 @@ {% block page_content %} {% trans "Upload File for Purchase Order" as header_text %} - {% order.status == PurchaseOrderStatus.PENDING and roles.purchase_order.change as upload_go_ahead %} {% trans "Order is already processed. Files cannot be uploaded." as error_text %} - {% "panel-upload-file" as panel_id %} - {% include "patterns/wizard/upload.html" with header_text=header_text upload_go_ahead=upload_go_ahead error_text=error_text panel_id=panel_id %} + {% with "panel-upload-file" as panel_id %} + {% if order.status == PurchaseOrderStatus.PENDING and roles.purchase_order.change %} + {% include "patterns/wizard/upload.html" with header_text=header_text upload_go_ahead=True error_text=error_text panel_id=panel_id %} + {% else %} + {% include "patterns/wizard/upload.html" with header_text=header_text upload_go_ahead=False error_text=error_text panel_id=panel_id %} + {% endif %} + {% endwith %} {% endblock %} {% block js_ready %} diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index 53f973ee20..a6393b7b68 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -4,7 +4,6 @@ {% load status_codes %} {% load i18n %} {% load static %} -{% load markdownify %} {% block sidebar %} {% include 'order/po_sidebar.html' %} @@ -71,24 +70,16 @@
          -
          -
          -

          {% trans "Order Notes" %}

          -
          -
          -
          - -
          +
          +

          {% trans "Order Notes" %}

          + {% include "spacer.html" %} +
          + {% include "notes_buttons.html" %}
          - {% if order.notes %} - {{ order.notes | markdownify }} - {% endif %} +
          @@ -98,16 +89,18 @@ {{ block.super }} - $('#edit-notes').click(function() { - constructForm('{% url "api-po-detail" order.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + onPanelLoad('order-notes', function() { + setupNotesField( + 'order-notes', + '{% url "api-po-detail" order.pk %}', + { + {% if roles.purchase_order.change %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); enableDragAndDrop( diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html index 9797c8dedf..f11d1fa832 100644 --- a/InvenTree/order/templates/order/sales_order_detail.html +++ b/InvenTree/order/templates/order/sales_order_detail.html @@ -4,7 +4,6 @@ {% load status_codes %} {% load i18n %} {% load static %} -{% load markdownify %} {% block sidebar %} {% include "order/so_sidebar.html" %} @@ -118,24 +117,16 @@
          -
          -
          -

          {% trans "Order Notes" %}

          -
          -
          -
          - -
          +
          +

          {% trans "Order Notes" %}

          + {% include "spacer.html" %} +
          + {% include "notes_buttons.html" %}
          - {% if order.notes %} - {{ order.notes | markdownify }} - {% endif %} +
          @@ -176,16 +167,18 @@ }); }); - $('#edit-notes').click(function() { - constructForm('{% url "api-so-detail" order.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + onPanelLoad('order-notes', function() { + setupNotesField( + 'order-notes', + '{% url "api-so-detail" order.pk %}', + { + {% if roles.purchase_order.change %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); enableDragAndDrop( diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 3a2bb6eeb3..1a80c87322 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -262,6 +262,15 @@ class CategoryTree(generics.ListAPIView): ordering = ['level', 'name'] +class PartSalePriceDetail(generics.RetrieveUpdateDestroyAPIView): + """ + Detail endpoint for PartSellPriceBreak model + """ + + queryset = PartSellPriceBreak.objects.all() + serializer_class = part_serializers.PartSalePriceSerializer + + class PartSalePriceList(generics.ListCreateAPIView): """ API endpoint for list view of PartSalePriceBreak model @@ -279,6 +288,15 @@ class PartSalePriceList(generics.ListCreateAPIView): ] +class PartInternalPriceDetail(generics.RetrieveUpdateDestroyAPIView): + """ + Detail endpoint for PartInternalPriceBreak model + """ + + queryset = PartInternalPriceBreak.objects.all() + serializer_class = part_serializers.PartInternalPriceSerializer + + class PartInternalPriceList(generics.ListCreateAPIView): """ API endpoint for list view of PartInternalPriceBreak model @@ -798,6 +816,20 @@ class PartFilter(rest_filters.FilterSet): return queryset + # unallocated_stock filter + unallocated_stock = rest_filters.BooleanFilter(label='Unallocated stock', method='filter_unallocated_stock') + + def filter_unallocated_stock(self, queryset, name, value): + + value = str2bool(value) + + if value: + queryset = queryset.filter(Q(unallocated_stock__gt=0)) + else: + queryset = queryset.filter(Q(unallocated_stock__lte=0)) + + return queryset + is_template = rest_filters.BooleanFilter() assembly = rest_filters.BooleanFilter() @@ -1161,6 +1193,18 @@ class PartList(generics.ListCreateAPIView): except (ValueError, Part.DoesNotExist): pass + # Filter by 'variant_of' + # Note that this is subtly different from 'ancestor' filter (above) + variant_of = params.get('variant_of', None) + + if variant_of is not None: + try: + template = Part.objects.get(pk=variant_of) + variants = template.get_children() + queryset = queryset.filter(pk__in=[v.pk for v in variants]) + except (ValueError, Part.DoesNotExist): + pass + # Filter only parts which are in the "BOM" for a given part in_bom_for = params.get('in_bom_for', None) @@ -1325,15 +1369,12 @@ class PartList(generics.ListCreateAPIView): filters.OrderingFilter, ] - filter_fields = [ - 'variant_of', - ] - ordering_fields = [ 'name', 'creation_date', 'IPN', 'in_stock', + 'unallocated_stock', 'category', ] @@ -1587,9 +1628,10 @@ class BomList(generics.ListCreateAPIView): def get_queryset(self, *args, **kwargs): - queryset = BomItem.objects.all() + queryset = super().get_queryset(*args, **kwargs) queryset = self.get_serializer_class().setup_eager_loading(queryset) + queryset = self.get_serializer_class().annotate_queryset(queryset) return queryset @@ -1803,6 +1845,15 @@ class BomDetail(generics.RetrieveUpdateDestroyAPIView): queryset = BomItem.objects.all() serializer_class = part_serializers.BomItemSerializer + def get_queryset(self, *args, **kwargs): + + queryset = super().get_queryset(*args, **kwargs) + + queryset = self.get_serializer_class().setup_eager_loading(queryset) + queryset = self.get_serializer_class().annotate_queryset(queryset) + + return queryset + class BomItemValidate(generics.UpdateAPIView): """ API endpoint for validating a BomItem """ @@ -1887,11 +1938,13 @@ part_api_urls = [ # Base URL for part sale pricing url(r'^sale-price/', include([ + url(r'^(?P\d+)/', PartSalePriceDetail.as_view(), name='api-part-sale-price-detail'), url(r'^.*$', PartSalePriceList.as_view(), name='api-part-sale-price-list'), ])), # Base URL for part internal pricing url(r'^internal-price/', include([ + url(r'^(?P\d+)/', PartInternalPriceDetail.as_view(), name='api-part-internal-price-detail'), url(r'^.*$', PartInternalPriceList.as_view(), name='api-part-internal-price-list'), ])), diff --git a/InvenTree/part/fixtures/bom.yaml b/InvenTree/part/fixtures/bom.yaml index e879b8381f..ac52452d75 100644 --- a/InvenTree/part/fixtures/bom.yaml +++ b/InvenTree/part/fixtures/bom.yaml @@ -7,6 +7,7 @@ part: 100 sub_part: 1 quantity: 10 + allow_variants: True # 40 x R_2K2_0805 - model: part.bomitem @@ -38,3 +39,11 @@ part: 1 sub_part: 5 quantity: 3 + +# Make "Assembly" from "Bob" +- model: part.bomitem + pk: 6 + fields: + part: 101 + sub_part: 100 + quantity: 10 diff --git a/InvenTree/part/fixtures/part.yaml b/InvenTree/part/fixtures/part.yaml index 77e808fd7f..fd38036fa9 100644 --- a/InvenTree/part/fixtures/part.yaml +++ b/InvenTree/part/fixtures/part.yaml @@ -108,6 +108,18 @@ lft: 0 rght: 0 +- model: part.part + pk: 101 + fields: + name: 'Assembly' + description: 'A high level assembly' + salable: true + active: True + tree_id: 0 + level: 0 + lft: 0 + rght: 0 + # A 'template' part - model: part.part pk: 10000 @@ -165,6 +177,7 @@ fields: name: 'Green chair variant' variant_of: 10003 + is_template: true category: 7 trackable: true tree_id: 1 diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index fad0f12e28..365ed62914 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -777,7 +777,8 @@ class Part(MPTTModel): # User can decide whether duplicate IPN (Internal Part Number) values are allowed allow_duplicate_ipn = common.models.InvenTreeSetting.get_setting('PART_ALLOW_DUPLICATE_IPN') - if self.IPN is not None and not allow_duplicate_ipn: + # Raise an error if an IPN is set, and it is a duplicate + if self.IPN and not allow_duplicate_ipn: parts = Part.objects.filter(IPN__iexact=self.IPN) parts = parts.exclude(pk=self.pk) @@ -798,6 +799,10 @@ class Part(MPTTModel): super().clean() + # Strip IPN field + if type(self.IPN) is str: + self.IPN = self.IPN.strip() + if self.trackable: for part in self.get_used_in().all(): @@ -1313,19 +1318,31 @@ class Part(MPTTModel): return quantity - def build_order_allocations(self): + def build_order_allocations(self, **kwargs): """ Return all 'BuildItem' objects which allocate this part to Build objects """ - return BuildModels.BuildItem.objects.filter(stock_item__part__id=self.id) + include_variants = kwargs.get('include_variants', True) - def build_order_allocation_count(self): + queryset = BuildModels.BuildItem.objects.all() + + if include_variants: + variants = self.get_descendants(include_self=True) + queryset = queryset.filter( + stock_item__part__in=variants, + ) + else: + queryset = queryset.filter(stock_item__part=self) + + return queryset + + def build_order_allocation_count(self, **kwargs): """ Return the total amount of this part allocated to build orders """ - query = self.build_order_allocations().aggregate( + query = self.build_order_allocations(**kwargs).aggregate( total=Coalesce( Sum( 'quantity', @@ -1343,9 +1360,22 @@ class Part(MPTTModel): Return all sales-order-allocation objects which allocate this part to a SalesOrder """ - queryset = OrderModels.SalesOrderAllocation.objects.filter(item__part__id=self.id) + include_variants = kwargs.get('include_variants', True) - pending = kwargs.get('pending', None) + queryset = OrderModels.SalesOrderAllocation.objects.all() + + if include_variants: + # Include allocations for all variants + variants = self.get_descendants(include_self=True) + queryset = queryset.filter( + item__part__in=variants, + ) + else: + # Only look at this part + queryset = queryset.filter(item__part=self) + + # Default behaviour is to only return *pending* allocations + pending = kwargs.get('pending', True) if pending is True: # Look only for 'open' orders which have not shipped @@ -1380,7 +1410,7 @@ class Part(MPTTModel): return query['total'] - def allocation_count(self): + def allocation_count(self, **kwargs): """ Return the total quantity of stock allocated for this part, against both build orders and sales orders. @@ -1388,8 +1418,8 @@ class Part(MPTTModel): return sum( [ - self.build_order_allocation_count(), - self.sales_order_allocation_count(), + self.build_order_allocation_count(**kwargs), + self.sales_order_allocation_count(**kwargs), ], ) @@ -1433,7 +1463,7 @@ class Part(MPTTModel): - If this part is a "template" (variants exist) then these are counted too """ - return self.get_stock_count() + return self.get_stock_count(include_variants=True) def get_bom_item_filter(self, include_inherited=True): """ @@ -2702,7 +2732,21 @@ class BomItem(models.Model, DataImportMixin): for sub in self.substitutes.all(): parts.add(sub.part) - return parts + valid_parts = [] + + for p in parts: + + # Inactive parts cannot be 'auto allocated' + if not p.active: + continue + + # Trackable status must be the same as the sub_part + if p.trackable != self.sub_part.trackable: + continue + + valid_parts.append(p) + + return valid_parts def is_stock_item_valid(self, stock_item): """ @@ -2881,23 +2925,6 @@ class BomItem(models.Model, DataImportMixin): child=self.sub_part.full_name, n=decimal2string(self.quantity)) - def available_stock(self): - """ - Return the available stock items for the referenced sub_part - """ - - query = self.sub_part.stock_items.all() - - query = query.prefetch_related([ - 'sub_part__stock_items', - ]) - - query = query.filter(StockModels.StockItem.IN_STOCK_FILTER).aggregate( - available=Coalesce(Sum('quantity'), 0) - ) - - return query['available'] - def get_overage_quantity(self, quantity): """ Calculate overage quantity """ diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index c46950adca..0e865ea74b 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -7,7 +7,9 @@ from decimal import Decimal from django.urls import reverse_lazy from django.db import models, transaction -from django.db.models import Q +from django.db.models import ExpressionWrapper, F, Q, Func +from django.db.models import Subquery, OuterRef, FloatField + from django.db.models.functions import Coalesce from django.utils.translation import ugettext_lazy as _ @@ -15,6 +17,8 @@ from rest_framework import serializers from sql_util.utils import SubqueryCount, SubquerySum from djmoney.contrib.django_rest_framework import MoneyField +from common.settings import currency_code_default, currency_code_mappings + from InvenTree.serializers import (DataFileUploadSerializer, DataFileExtractSerializer, InvenTreeAttachmentSerializerField, @@ -24,7 +28,10 @@ from InvenTree.serializers import (DataFileUploadSerializer, InvenTreeAttachmentSerializer, InvenTreeMoneySerializer) -from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus +from InvenTree.status_codes import (BuildStatus, + PurchaseOrderStatus, + SalesOrderStatus) + from stock.models import StockItem from .models import (BomItem, BomItemSubstitute, @@ -143,6 +150,13 @@ class PartSalePriceSerializer(InvenTreeModelSerializer): allow_null=True ) + price_currency = serializers.ChoiceField( + choices=currency_code_mappings(), + default=currency_code_default, + label=_('Currency'), + help_text=_('Purchase currency of this stock item'), + ) + price_string = serializers.CharField(source='price', read_only=True) class Meta: @@ -152,6 +166,7 @@ class PartSalePriceSerializer(InvenTreeModelSerializer): 'part', 'quantity', 'price', + 'price_currency', 'price_string', ] @@ -167,6 +182,13 @@ class PartInternalPriceSerializer(InvenTreeModelSerializer): allow_null=True ) + price_currency = serializers.ChoiceField( + choices=currency_code_mappings(), + default=currency_code_default, + label=_('Currency'), + help_text=_('Purchase currency of this stock item'), + ) + price_string = serializers.CharField(source='price', read_only=True) class Meta: @@ -176,6 +198,7 @@ class PartInternalPriceSerializer(InvenTreeModelSerializer): 'part', 'quantity', 'price', + 'price_currency', 'price_string', ] @@ -305,9 +328,6 @@ class PartSerializer(InvenTreeModelSerializer): to reduce database trips. """ - # TODO: Update the "in_stock" annotation to include stock for variants of the part - # Ref: https://github.com/inventree/InvenTree/issues/2240 - # Annotate with the total 'in stock' quantity queryset = queryset.annotate( in_stock=Coalesce( @@ -322,6 +342,24 @@ class PartSerializer(InvenTreeModelSerializer): stock_item_count=SubqueryCount('stock_items') ) + # Annotate with the total variant stock quantity + variant_query = StockItem.objects.filter( + part__tree_id=OuterRef('tree_id'), + part__lft__gt=OuterRef('lft'), + part__rght__lt=OuterRef('rght'), + ).filter(StockItem.IN_STOCK_FILTER) + + queryset = queryset.annotate( + variant_stock=Coalesce( + Subquery( + variant_query.annotate( + total=Func(F('quantity'), function='SUM', output_field=FloatField()) + ).values('total')), + 0, + output_field=FloatField(), + ) + ) + # Filter to limit builds to "active" build_filter = Q( status__in=BuildStatus.ACTIVE_CODES @@ -363,6 +401,51 @@ class PartSerializer(InvenTreeModelSerializer): ), ) + """ + Annotate with the number of stock items allocated to sales orders. + This annotation is modeled on Part.sales_order_allocations() method: + + - Only look for "open" orders + - Stock items have not been "shipped" + """ + so_allocation_filter = Q( + line__order__status__in=SalesOrderStatus.OPEN, # LineItem points to an OPEN order + shipment__shipment_date=None, # Allocated item has *not* been shipped out + ) + + queryset = queryset.annotate( + allocated_to_sales_orders=Coalesce( + SubquerySum('stock_items__sales_order_allocations__quantity', filter=so_allocation_filter), + Decimal(0), + output_field=models.DecimalField(), + ) + ) + + """ + Annotate with the number of stock items allocated to build orders. + This annotation is modeled on Part.build_order_allocations() method + """ + bo_allocation_filter = Q( + build__status__in=BuildStatus.ACTIVE_CODES, + ) + + queryset = queryset.annotate( + allocated_to_build_orders=Coalesce( + SubquerySum('stock_items__allocations__quantity', filter=bo_allocation_filter), + Decimal(0), + output_field=models.DecimalField(), + ) + ) + + # Annotate with the total 'available stock' quantity + # This is the current stock, minus any allocations + queryset = queryset.annotate( + unallocated_stock=ExpressionWrapper( + F('in_stock') - F('allocated_to_sales_orders') - F('allocated_to_build_orders'), + output_field=models.DecimalField(), + ) + ) + return queryset def get_starred(self, part): @@ -376,9 +459,13 @@ class PartSerializer(InvenTreeModelSerializer): category_detail = CategorySerializer(source='category', many=False, read_only=True) # Calculated fields - in_stock = serializers.FloatField(read_only=True) - ordering = serializers.FloatField(read_only=True) + allocated_to_build_orders = serializers.FloatField(read_only=True) + allocated_to_sales_orders = serializers.FloatField(read_only=True) + unallocated_stock = serializers.FloatField(read_only=True) building = serializers.FloatField(read_only=True) + in_stock = serializers.FloatField(read_only=True) + variant_stock = serializers.FloatField(read_only=True) + ordering = serializers.FloatField(read_only=True) stock_item_count = serializers.IntegerField(read_only=True) suppliers = serializers.IntegerField(read_only=True) @@ -399,7 +486,8 @@ class PartSerializer(InvenTreeModelSerializer): partial = True fields = [ 'active', - + 'allocated_to_build_orders', + 'allocated_to_sales_orders', 'assembly', 'category', 'category_detail', @@ -411,6 +499,7 @@ class PartSerializer(InvenTreeModelSerializer): 'full_name', 'image', 'in_stock', + 'variant_stock', 'ordering', 'building', 'IPN', @@ -430,6 +519,7 @@ class PartSerializer(InvenTreeModelSerializer): 'suppliers', 'thumbnail', 'trackable', + 'unallocated_stock', 'units', 'variant_of', 'virtual', @@ -524,6 +614,11 @@ class BomItemSerializer(InvenTreeModelSerializer): purchase_price_range = serializers.SerializerMethodField() + # Annotated fields for available stock + available_stock = serializers.FloatField(read_only=True) + available_substitute_stock = serializers.FloatField(read_only=True) + available_variant_stock = serializers.FloatField(read_only=True) + def __init__(self, *args, **kwargs): # part_detail and sub_part_detail serializers are only included if requested. # This saves a bunch of database requests @@ -556,10 +651,158 @@ class BomItemSerializer(InvenTreeModelSerializer): queryset = queryset.prefetch_related('sub_part') queryset = queryset.prefetch_related('sub_part__category') - queryset = queryset.prefetch_related('sub_part__stock_items') + + queryset = queryset.prefetch_related( + 'sub_part__stock_items', + 'sub_part__stock_items__allocations', + 'sub_part__stock_items__sales_order_allocations', + ) + + queryset = queryset.prefetch_related( + 'substitutes', + 'substitutes__part__stock_items', + ) + queryset = queryset.prefetch_related('sub_part__supplier_parts__pricebreaks') return queryset + @staticmethod + def annotate_queryset(queryset): + """ + Annotate the BomItem queryset with extra information: + + Annotations: + available_stock: The amount of stock available for the sub_part Part object + """ + + """ + Construct an "available stock" quantity: + available_stock = total_stock - build_order_allocations - sales_order_allocations + """ + + build_order_filter = Q(build__status__in=BuildStatus.ACTIVE_CODES) + sales_order_filter = Q( + line__order__status__in=SalesOrderStatus.OPEN, + shipment__shipment_date=None, + ) + + # Calculate "total stock" for the referenced sub_part + # Calculate the "build_order_allocations" for the sub_part + # Note that these fields are only aliased, not annotated + queryset = queryset.alias( + total_stock=Coalesce( + SubquerySum( + 'sub_part__stock_items__quantity', + filter=StockItem.IN_STOCK_FILTER + ), + Decimal(0), + output_field=models.DecimalField(), + ), + allocated_to_sales_orders=Coalesce( + SubquerySum( + 'sub_part__stock_items__sales_order_allocations__quantity', + filter=sales_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + allocated_to_build_orders=Coalesce( + SubquerySum( + 'sub_part__stock_items__allocations__quantity', + filter=build_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + ) + + # Calculate 'available_stock' based on previously annotated fields + queryset = queryset.annotate( + available_stock=ExpressionWrapper( + F('total_stock') - F('allocated_to_sales_orders') - F('allocated_to_build_orders'), + output_field=models.DecimalField(), + ) + ) + + # Extract similar information for any 'substitute' parts + queryset = queryset.alias( + substitute_stock=Coalesce( + SubquerySum( + 'substitutes__part__stock_items__quantity', + filter=StockItem.IN_STOCK_FILTER, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + substitute_build_allocations=Coalesce( + SubquerySum( + 'substitutes__part__stock_items__allocations__quantity', + filter=build_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + substitute_sales_allocations=Coalesce( + SubquerySum( + 'substitutes__part__stock_items__sales_order_allocations__quantity', + filter=sales_order_filter, + ), + Decimal(0), + output_field=models.DecimalField(), + ), + ) + + # Calculate 'available_substitute_stock' field + queryset = queryset.annotate( + available_substitute_stock=ExpressionWrapper( + F('substitute_stock') - F('substitute_build_allocations') - F('substitute_sales_allocations'), + output_field=models.DecimalField(), + ) + ) + + # Annotate the queryset with 'available variant stock' information + variant_stock_query = StockItem.objects.filter( + part__tree_id=OuterRef('sub_part__tree_id'), + part__lft__gt=OuterRef('sub_part__lft'), + part__rght__lt=OuterRef('sub_part__rght'), + ).filter(StockItem.IN_STOCK_FILTER) + + queryset = queryset.alias( + variant_stock_total=Coalesce( + Subquery( + variant_stock_query.annotate( + total=Func(F('quantity'), function='SUM', output_field=FloatField()) + ).values('total')), + 0, + output_field=FloatField() + ), + variant_stock_build_order_allocations=Coalesce( + Subquery( + variant_stock_query.annotate( + total=Func(F('sales_order_allocations__quantity'), function='SUM', output_field=FloatField()), + ).values('total')), + 0, + output_field=FloatField(), + ), + variant_stock_sales_order_allocations=Coalesce( + Subquery( + variant_stock_query.annotate( + total=Func(F('allocations__quantity'), function='SUM', output_field=FloatField()), + ).values('total')), + 0, + output_field=FloatField(), + ) + ) + + queryset = queryset.annotate( + available_variant_stock=ExpressionWrapper( + F('variant_stock_total') - F('variant_stock_build_order_allocations') - F('variant_stock_sales_order_allocations'), + output_field=FloatField(), + ) + ) + + return queryset + def get_purchase_price_range(self, obj): """ Return purchase price range """ @@ -629,6 +872,12 @@ class BomItemSerializer(InvenTreeModelSerializer): 'substitutes', 'price_range', 'validated', + + # Annotated fields describing available quantity + 'available_stock', + 'available_substitute_stock', + 'available_variant_stock', + ] diff --git a/InvenTree/part/templates/markdownx/widget.html b/InvenTree/part/templates/markdownx/widget.html deleted file mode 100644 index 61c8673748..0000000000 --- a/InvenTree/part/templates/markdownx/widget.html +++ /dev/null @@ -1,10 +0,0 @@ -{% load i18n %} - -
          -
          - {% include 'django/forms/widgets/textarea.html' %} -
          -
          -
          -
          -
          \ No newline at end of file diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index 6a61ef2fbf..2f7076c850 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -187,6 +187,15 @@
          +
          +
          +

          {% trans "Stock Items" %}

          +
          +
          + {% include "stock_table.html" %} +
          +
          +

          {% trans "Part Parameters" %}

          @@ -223,6 +232,21 @@ {{ block.super }} {% if category %} + + onPanelLoad('stock', function() { + loadStockTable( + $('#stock-table'), + { + params: { + category: {{ category.pk }}, + part_detail: true, + location_detail: true, + supplier_part_detail: true, + } + } + ); + }); + onPanelLoad('parameters', function() { loadParametricPartTable( "#parametric-part-table", diff --git a/InvenTree/part/templates/part/category_sidebar.html b/InvenTree/part/templates/part/category_sidebar.html index 3d945d0433..5468d953ae 100644 --- a/InvenTree/part/templates/part/category_sidebar.html +++ b/InvenTree/part/templates/part/category_sidebar.html @@ -14,6 +14,8 @@ {% include "sidebar_link.html" with url=url text=text icon="fa-file-upload" %} {% endif %} {% if category %} +{% trans "Stock Items" as text %} +{% include "sidebar_item.html" with label='stock' text=text icon='fa-boxes' %} {% trans "Parameters" as text %} {% include "sidebar_item.html" with label="parameters" text=text icon="fa-tasks" %} {% endif %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 44f6682d3c..5ec1821b3d 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -3,7 +3,6 @@ {% load i18n %} {% load inventree_extras %} {% load crispy_forms_tags %} -{% load markdownify %} {% block sidebar %} {% include 'part/part_sidebar.html' %} @@ -125,8 +124,7 @@
          -{% settings_value "PART_SHOW_PRICE_HISTORY" as show_price_history %} -{% if show_price_history %} +{% if part.purchaseable or part.salable %}
          {% include "part/prices.html" %}
          @@ -134,24 +132,16 @@
          -
          -
          -

          {% trans "Notes" %}

          -
          -
          -
          - -
          +
          +

          {% trans "Part Notes" %}

          + {% include "spacer.html" %} +
          + {% include "notes_buttons.html" %}
          - {% if part.notes %} - {{ part.notes | markdownify }} - {% endif %} +
          @@ -419,6 +409,18 @@ {% block js_ready %} {{ block.super }} + // Load the "notes" tab + onPanelLoad('part-notes', function() { + + setupNotesField( + 'part-notes', + '{% url "api-part-detail" part.pk %}', + { + editable: {% if roles.part.change %}true{% else %}false{% endif %}, + } + ); + }); + // Load the "scheduling" tab onPanelLoad('scheduling', function() { loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); @@ -832,36 +834,6 @@ }); }); - $('#edit-notes').click(function() { - constructForm('{% url "api-part-detail" part.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Part Notes" %}', - reload: true, - }); - }); - - $(".slidey").change(function() { - var field = $(this).attr('fieldname'); - - var checked = $(this).prop('checked'); - - var data = {}; - - data[field] = checked; - // Update the particular field - inventreePut("{% url 'api-part-detail' part.id %}", - data, - { - method: 'PATCH', - reloadOnSuccess: true, - }, - ); - }); - onPanelLoad("part-parameters", function() { loadPartParameterTable( '#parameter-table', @@ -1036,7 +1008,7 @@ pb_url_slug: 'internal-price', pb_url: '{% url 'api-part-internal-price-list' %}', pb_new_btn: $('#new-internal-price-break'), - pb_new_url: '{% url 'internal-price-break-create' %}', + pb_new_url: '{% url 'api-part-internal-price-list' %}', linkedGraph: $('#InternalPriceBreakChart'), }, ); @@ -1052,7 +1024,7 @@ pb_url_slug: 'sale-price', pb_url: "{% url 'api-part-sale-price-list' %}", pb_new_btn: $('#new-price-break'), - pb_new_url: '{% url 'sale-price-break-create' %}', + pb_new_url: '{% url 'api-part-sale-price-list' %}', linkedGraph: $('#SalePriceBreakChart'), }, ); diff --git a/InvenTree/part/templates/part/import_wizard/part_upload.html b/InvenTree/part/templates/part/import_wizard/part_upload.html index 4fef625d1d..025a4e997c 100644 --- a/InvenTree/part/templates/part/import_wizard/part_upload.html +++ b/InvenTree/part/templates/part/import_wizard/part_upload.html @@ -11,9 +11,8 @@ {% block content %} {% trans "Import Parts from File" as header_text %} - {% roles.part.change as upload_go_ahead %} {% trans "Unsuffitient privileges." as error_text %} - {% include "patterns/wizard/upload.html" with header_text=header_text upload_go_ahead=upload_go_ahead error_text=error_text %} + {% include "patterns/wizard/upload.html" with header_text=header_text upload_go_ahead=roles.part.change error_text=error_text %} {% endblock %} {% block js_ready %} diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index d14cfbdfd5..56a96c60ed 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -37,13 +37,17 @@ {% endif %} -{% if barcodes %} +{% if barcodes or labels_enabled %}
          {% endif %} @@ -207,48 +211,21 @@ {% if part.component %} {% if required_build_order_quantity > 0 %} - - {% trans "Required for Build Orders" %} - {% decimal required_build_order_quantity %} - - - + {% trans "Allocated to Build Orders" %} - - {% decimal allocated_build_order_quantity %} - {% if allocated_build_order_quantity < required_build_order_quantity %} - - {% else %} - - {% endif %} - + {% progress_bar allocated_build_order_quantity required_build_order_quantity id='build-order-allocated' max_width='150px' %} {% endif %} {% endif %} {% if part.salable %} {% if required_sales_order_quantity > 0 %} - - {% trans "Required for Sales Orders" %} - - {% decimal required_sales_order_quantity %} - - - - + {% trans "Allocated to Sales Orders" %} - - {% decimal allocated_sales_order_quantity %} - {% if allocated_sales_order_quantity < required_sales_order_quantity %} - - {% else %} - - {% endif %} - + {% progress_bar allocated_sales_order_quantity required_sales_order_quantity id='sales-order-allocated' max_width='150px' %} {% endif %} {% endif %} - {% if not part.is_template %} {% if part.assembly %} @@ -262,7 +239,6 @@ {% decimal quantity_being_built %} {% endif %} - {% endif %} {% endif %} {% endblock details_right %} @@ -424,9 +400,11 @@ ); }); + {% if labels_enabled %} $('#print-label').click(function() { printPartLabels([{{ part.pk }}]); }); + {% endif %} function adjustPartStock(action) { inventreeGet( diff --git a/InvenTree/part/templates/part/part_sidebar.html b/InvenTree/part/templates/part/part_sidebar.html index 3c1c647f86..e8763fb973 100644 --- a/InvenTree/part/templates/part/part_sidebar.html +++ b/InvenTree/part/templates/part/part_sidebar.html @@ -4,7 +4,6 @@ {% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} {% settings_value 'PART_SHOW_RELATED' as show_related %} -{% settings_value "PART_SHOW_PRICE_HISTORY" as show_price_history %} {% trans "Parameters" as text %} {% include "sidebar_item.html" with label="part-parameters" text=text icon="fa-th-list" %} @@ -28,7 +27,7 @@ {% trans "Used In" as text %} {% include "sidebar_item.html" with label="used-in" text=text icon="fa-layer-group" %} {% endif %} -{% if show_price_history %} +{% if part.purchaseable or part.salable %} {% trans "Pricing" as text %} {% include "sidebar_item.html" with label="pricing" text=text icon="fa-dollar-sign" %} {% endif %} diff --git a/InvenTree/part/templates/part/prices.html b/InvenTree/part/templates/part/prices.html index 9b829c179b..d47f49ef76 100644 --- a/InvenTree/part/templates/part/prices.html +++ b/InvenTree/part/templates/part/prices.html @@ -3,6 +3,9 @@ {% load crispy_forms_tags %} {% load inventree_extras %} +{% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} + +{% if show_price_history %}

          {% trans "Pricing Information" %}

          @@ -43,7 +46,7 @@ {% endif %} {% endif %} - {% if part.bom_count > 0 %} + {% if part.assembly and part.bom_count > 0 %} {% if min_total_bom_price %} {% trans 'BOM Pricing' %} @@ -147,7 +150,7 @@
          -{% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} +{% endif %} {% if part.purchaseable and roles.purchase_order.view %} @@ -170,7 +173,7 @@
          -{% if price_history %} +{% if show_price_history %}

          {% trans "Purchase Price" %} @@ -279,6 +282,7 @@

          +{% if show_price_history %}

          {% trans "Sale Price" %} @@ -298,3 +302,5 @@ {% endif %}

          {% endif %} +{% endif %} + \ No newline at end of file diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index dc93e00efa..889946ff19 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -18,7 +18,8 @@ from django.conf import settings as djangosettings from django import template from django.urls import reverse from django.utils.safestring import mark_safe -from django.templatetags.static import StaticNode +from django.templatetags.static import StaticNode, static +from django.core.files.storage import default_storage from InvenTree import version, settings @@ -160,10 +161,11 @@ def inventree_in_debug_mode(*args, **kwargs): @register.simple_tag() -def inventree_demo_mode(*args, **kwargs): - """ Return True if the server is running in DEMO mode """ - - return djangosettings.DEMO_MODE +def inventree_show_about(user, *args, **kwargs): + """ Return True if the about modal should be shown """ + if InvenTreeSetting.get_setting('INVENTREE_RESTRICT_ABOUT') and not user.is_superuser: + return False + return True @register.simple_tag() @@ -220,8 +222,13 @@ def python_version(*args, **kwargs): @register.simple_tag() -def inventree_version(*args, **kwargs): +def inventree_version(shortstring=False, *args, **kwargs): """ Return InvenTree version string """ + if shortstring: + return _("{title} v{version}".format( + title=version.inventreeInstanceTitle(), + version=version.inventreeVersion() + )) return version.inventreeVersion() @@ -352,21 +359,24 @@ def visible_global_settings(*args, **kwargs): @register.simple_tag() -def progress_bar(val, max, *args, **kwargs): +def progress_bar(val, max_val, *args, **kwargs): """ Render a progress bar element """ item_id = kwargs.get('id', 'progress-bar') - if val > max: + val = InvenTree.helpers.normalize(val) + max_val = InvenTree.helpers.normalize(max_val) + + if val > max_val: style = 'progress-bar-over' - elif val < max: + elif val < max_val: style = 'progress-bar-under' else: style = '' - percent = float(val / max) * 100 + percent = float(val / max_val) * 100 if percent > 100: percent = 100 @@ -383,7 +393,7 @@ def progress_bar(val, max, *args, **kwargs): html = f"""
          -
          {val} / {max}
          +
          {val} / {max_val}
          """ @@ -509,6 +519,22 @@ def mail_configured(): return bool(settings.EMAIL_HOST) +@register.simple_tag() +def inventree_customize(reference, *args, **kwargs): + """ Return customization values for the user interface """ + + return djangosettings.CUSTOMIZE.get(reference, '') + + +@register.simple_tag() +def inventree_logo(*args, **kwargs): + """ Return the path to the logo-file """ + + if settings.CUSTOM_LOGO: + return default_storage.url(settings.CUSTOM_LOGO) + return static('img/inventree.png') + + class I18nStaticNode(StaticNode): """ custom StaticNode diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py index 23f929bca0..f0770eb1f5 100644 --- a/InvenTree/part/test_api.py +++ b/InvenTree/part/test_api.py @@ -9,7 +9,7 @@ from rest_framework import status from rest_framework.test import APIClient from InvenTree.api_tester import InvenTreeAPITestCase -from InvenTree.status_codes import StockStatus +from InvenTree.status_codes import BuildStatus, StockStatus, PurchaseOrderStatus from part.models import Part, PartCategory from part.models import BomItem, BomItemSubstitute @@ -17,6 +17,9 @@ from stock.models import StockItem, StockLocation from company.models import Company from common.models import InvenTreeSetting +import build.models +import order.models + class PartOptionsAPITest(InvenTreeAPITestCase): """ @@ -247,7 +250,7 @@ class PartAPITest(InvenTreeAPITestCase): data = {'cascade': True} response = self.client.get(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(len(response.data), 13) + self.assertEqual(len(response.data), Part.objects.count()) def test_get_parts_by_cat(self): url = reverse('api-part-list') @@ -564,6 +567,185 @@ class PartAPITest(InvenTreeAPITestCase): self.assertEqual(response.data['name'], name) self.assertEqual(response.data['description'], description) + def test_template_filters(self): + """ + Unit tests for API filters related to template parts: + + - variant_of : Return children of specified part + - ancestor : Return descendants of specified part + + Uses the 'chair template' part (pk=10000) + """ + + # Rebuild the MPTT structure before running these tests + Part.objects.rebuild() + + url = reverse('api-part-list') + + response = self.get( + url, + { + 'variant_of': 10000, + }, + expected_code=200 + ) + + # 3 direct children of template part + self.assertEqual(len(response.data), 3) + + response = self.get( + url, + { + 'ancestor': 10000, + }, + expected_code=200, + ) + + # 4 total descendants + self.assertEqual(len(response.data), 4) + + # Use the 'green chair' as our reference + response = self.get( + url, + { + 'variant_of': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 1) + + response = self.get( + url, + { + 'ancestor': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 1) + + # Add some more variants + + p = Part.objects.get(pk=10004) + + for i in range(100): + Part.objects.create( + name=f'Chair variant {i}', + description='A new chair variant', + variant_of=p, + ) + + # There should still be only one direct variant + response = self.get( + url, + { + 'variant_of': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 1) + + # However, now should be 101 descendants + response = self.get( + url, + { + 'ancestor': 10003, + }, + expected_code=200, + ) + + self.assertEqual(len(response.data), 101) + + def test_variant_stock(self): + """ + Unit tests for the 'variant_stock' annotation, + which provides a stock count for *variant* parts + """ + + # Ensure the MPTT structure is in a known state before running tests + Part.objects.rebuild() + + # Initially, there are no "chairs" in stock, + # so each 'chair' template should report variant_stock=0 + url = reverse('api-part-list') + + # Look at the "detail" URL for the master chair template + response = self.get('/api/part/10000/', {}, expected_code=200) + + # This part should report 'zero' as variant stock + self.assertEqual(response.data['variant_stock'], 0) + + # Grab a list of all variant chairs *under* the master template + response = self.get( + url, + { + 'ancestor': 10000, + }, + expected_code=200, + ) + + # 4 total descendants + self.assertEqual(len(response.data), 4) + + for variant in response.data: + self.assertEqual(variant['variant_stock'], 0) + + # Now, let's make some variant stock + for variant in Part.objects.get(pk=10000).get_descendants(include_self=False): + StockItem.objects.create( + part=variant, + quantity=100, + ) + + response = self.get('/api/part/10000/', {}, expected_code=200) + + self.assertEqual(response.data['in_stock'], 0) + self.assertEqual(response.data['variant_stock'], 400) + + # Check that each variant reports the correct stock quantities + response = self.get( + url, + { + 'ancestor': 10000, + }, + expected_code=200, + ) + + expected_variant_stock = { + 10001: 0, + 10002: 0, + 10003: 100, + 10004: 0, + } + + for variant in response.data: + self.assertEqual(variant['in_stock'], 100) + self.assertEqual(variant['variant_stock'], expected_variant_stock[variant['pk']]) + + # Add some 'sub variants' for the green chair variant + green_chair = Part.objects.get(pk=10004) + + for i in range(10): + gcv = Part.objects.create( + name=f"GC Var {i}", + description="Green chair variant", + variant_of=green_chair, + ) + + StockItem.objects.create( + part=gcv, + quantity=50, + ) + + # Spot check of some values + response = self.get('/api/part/10000/', {}) + self.assertEqual(response.data['variant_stock'], 900) + + response = self.get('/api/part/10004/', {}) + self.assertEqual(response.data['variant_stock'], 500) + class PartDetailTests(InvenTreeAPITestCase): """ @@ -575,7 +757,12 @@ class PartDetailTests(InvenTreeAPITestCase): 'part', 'location', 'bom', + 'company', 'test_templates', + 'manufacturer_part', + 'supplier_part', + 'order', + 'stock', ] roles = [ @@ -802,6 +989,38 @@ class PartDetailTests(InvenTreeAPITestCase): # And now check that the image has been set p = Part.objects.get(pk=pk) + def test_details(self): + """ + Test that the required details are available + """ + + p = Part.objects.get(pk=1) + + url = reverse('api-part-detail', kwargs={'pk': 1}) + + data = self.get(url, expected_code=200).data + + # How many parts are 'on order' for this part? + lines = order.models.PurchaseOrderLineItem.objects.filter( + part__part__pk=1, + order__status__in=PurchaseOrderStatus.OPEN, + ) + + on_order = 0 + + # Calculate the "on_order" quantity by hand, + # to check it matches the API value + for line in lines: + on_order += line.quantity + on_order -= line.received + + self.assertEqual(on_order, data['ordering']) + self.assertEqual(on_order, p.on_order) + + # Some other checks + self.assertEqual(data['in_stock'], 9000) + self.assertEqual(data['unallocated_stock'], 9000) + class PartAPIAggregationTest(InvenTreeAPITestCase): """ @@ -815,6 +1034,10 @@ class PartAPIAggregationTest(InvenTreeAPITestCase): 'location', 'bom', 'test_templates', + 'build', + 'location', + 'stock', + 'sales_order', ] roles = [ @@ -826,6 +1049,9 @@ class PartAPIAggregationTest(InvenTreeAPITestCase): super().setUp() + # Ensure the part "variant" tree is correctly structured + Part.objects.rebuild() + # Add a new part self.part = Part.objects.create( name='Banana', @@ -880,6 +1106,153 @@ class PartAPIAggregationTest(InvenTreeAPITestCase): self.assertEqual(data['in_stock'], 1100) self.assertEqual(data['stock_item_count'], 105) + def test_allocation_annotations(self): + """ + Tests for query annotations which add allocation information. + Ref: https://github.com/inventree/InvenTree/pull/2797 + """ + + # We are looking at Part ID 100 ("Bob") + url = reverse('api-part-detail', kwargs={'pk': 100}) + + part = Part.objects.get(pk=100) + + response = self.get(url, expected_code=200) + + # Check that the expected annotated fields exist in the data + data = response.data + self.assertEqual(data['allocated_to_build_orders'], 0) + self.assertEqual(data['allocated_to_sales_orders'], 0) + + # The unallocated stock count should equal the 'in stock' coutn + in_stock = data['in_stock'] + self.assertEqual(in_stock, 126) + self.assertEqual(data['unallocated_stock'], in_stock) + + # Check that model functions return the same values + self.assertEqual(part.build_order_allocation_count(), 0) + self.assertEqual(part.sales_order_allocation_count(), 0) + self.assertEqual(part.total_stock, in_stock) + self.assertEqual(part.available_stock, in_stock) + + # Now, let's create a sales order, and allocate some stock + so = order.models.SalesOrder.objects.create( + reference='001', + customer=Company.objects.get(pk=1), + ) + + # We wish to send 50 units of "Bob" against this sales order + line = order.models.SalesOrderLineItem.objects.create( + quantity=50, + order=so, + part=part, + ) + + # Create a shipment against the order + shipment_1 = order.models.SalesOrderShipment.objects.create( + order=so, + reference='001', + ) + + shipment_2 = order.models.SalesOrderShipment.objects.create( + order=so, + reference='002', + ) + + # Allocate stock items to this order, against multiple shipments + order.models.SalesOrderAllocation.objects.create( + line=line, + shipment=shipment_1, + item=StockItem.objects.get(pk=1007), + quantity=17 + ) + + order.models.SalesOrderAllocation.objects.create( + line=line, + shipment=shipment_1, + item=StockItem.objects.get(pk=1008), + quantity=18 + ) + + order.models.SalesOrderAllocation.objects.create( + line=line, + shipment=shipment_2, + item=StockItem.objects.get(pk=1006), + quantity=15, + ) + + # Submit the API request again - should show us the sales order allocation + data = self.get(url, expected_code=200).data + + self.assertEqual(data['allocated_to_sales_orders'], 50) + self.assertEqual(data['in_stock'], 126) + self.assertEqual(data['unallocated_stock'], 76) + + # Now, "ship" the first shipment (so the stock is not 'in stock' any more) + shipment_1.complete_shipment(None) + + # Refresh the API data + data = self.get(url, expected_code=200).data + + self.assertEqual(data['allocated_to_build_orders'], 0) + self.assertEqual(data['allocated_to_sales_orders'], 15) + self.assertEqual(data['in_stock'], 91) + self.assertEqual(data['unallocated_stock'], 76) + + # Next, we create a build order and allocate stock against it + bo = build.models.Build.objects.create( + part=Part.objects.get(pk=101), + quantity=10, + title='Making some assemblies', + status=BuildStatus.PRODUCTION, + ) + + bom_item = BomItem.objects.get(pk=6) + + # Allocate multiple stock items against this build order + build.models.BuildItem.objects.create( + build=bo, + bom_item=bom_item, + stock_item=StockItem.objects.get(pk=1000), + quantity=10, + ) + + # Request data once more + data = self.get(url, expected_code=200).data + + self.assertEqual(data['allocated_to_build_orders'], 10) + self.assertEqual(data['allocated_to_sales_orders'], 15) + self.assertEqual(data['in_stock'], 91) + self.assertEqual(data['unallocated_stock'], 66) + + # Again, check that the direct model functions return the same values + self.assertEqual(part.build_order_allocation_count(), 10) + self.assertEqual(part.sales_order_allocation_count(), 15) + self.assertEqual(part.total_stock, 91) + self.assertEqual(part.available_stock, 66) + + # Allocate further stock against the build + build.models.BuildItem.objects.create( + build=bo, + bom_item=bom_item, + stock_item=StockItem.objects.get(pk=1001), + quantity=10, + ) + + # Request data once more + data = self.get(url, expected_code=200).data + + self.assertEqual(data['allocated_to_build_orders'], 20) + self.assertEqual(data['allocated_to_sales_orders'], 15) + self.assertEqual(data['in_stock'], 91) + self.assertEqual(data['unallocated_stock'], 56) + + # Again, check that the direct model functions return the same values + self.assertEqual(part.build_order_allocation_count(), 20) + self.assertEqual(part.sales_order_allocation_count(), 15) + self.assertEqual(part.total_stock, 91) + self.assertEqual(part.available_stock, 56) + class BomItemTest(InvenTreeAPITestCase): """ @@ -966,6 +1339,12 @@ class BomItemTest(InvenTreeAPITestCase): self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['pk'], bom_item.pk) + # Each item in response should contain expected keys + for el in response.data: + + for key in ['available_stock', 'available_substitute_stock']: + self.assertTrue(key in el) + def test_get_bom_detail(self): """ Get the detail view for a single BomItem object @@ -975,6 +1354,26 @@ class BomItemTest(InvenTreeAPITestCase): response = self.get(url, expected_code=200) + expected_values = [ + 'allow_variants', + 'inherited', + 'note', + 'optional', + 'overage', + 'pk', + 'part', + 'quantity', + 'reference', + 'sub_part', + 'substitutes', + 'validated', + 'available_stock', + 'available_substitute_stock', + ] + + for key in expected_values: + self.assertTrue(key in response.data) + self.assertEqual(int(float(response.data['quantity'])), 25) # Increase the quantity @@ -1162,6 +1561,21 @@ class BomItemTest(InvenTreeAPITestCase): response = self.get(url, expected_code=200) self.assertEqual(len(response.data), 5) + # The BomItem detail endpoint should now also reflect the substitute data + data = self.get( + reverse('api-bom-item-detail', kwargs={'pk': bom_item.pk}), + expected_code=200 + ).data + + # 5 substitute parts + self.assertEqual(len(data['substitutes']), 5) + + # 5 x 1,000 stock quantity + self.assertEqual(data['available_substitute_stock'], 5000) + + # 9,000 stock directly available + self.assertEqual(data['available_stock'], 9000) + def test_bom_item_uses(self): """ Tests for the 'uses' field @@ -1215,6 +1629,44 @@ class BomItemTest(InvenTreeAPITestCase): self.assertEqual(len(response.data), i) + def test_bom_variant_stock(self): + """ + Test for 'available_variant_stock' annotation + """ + + Part.objects.rebuild() + + # BOM item we are interested in + bom_item = BomItem.objects.get(pk=1) + + response = self.get('/api/bom/1/', {}, expected_code=200) + + # Initially, no variant stock available + self.assertEqual(response.data['available_variant_stock'], 0) + + # Create some 'variants' of the referenced sub_part + bom_item.sub_part.is_template = True + bom_item.sub_part.save() + + for i in range(10): + # Create a variant part + vp = Part.objects.create( + name=f"Var {i}", + description="Variant part", + variant_of=bom_item.sub_part, + ) + + # Create a stock item + StockItem.objects.create( + part=vp, + quantity=100, + ) + + # There should now be variant stock available + response = self.get('/api/bom/1/', {}, expected_code=200) + + self.assertEqual(response.data['available_variant_stock'], 1000) + class PartParameterTest(InvenTreeAPITestCase): """ diff --git a/InvenTree/part/test_bom_item.py b/InvenTree/part/test_bom_item.py index 7466277118..88548f3cf7 100644 --- a/InvenTree/part/test_bom_item.py +++ b/InvenTree/part/test_bom_item.py @@ -46,7 +46,7 @@ class BomItemTest(TestCase): # TODO: Tests for multi-level BOMs def test_used_in(self): - self.assertEqual(self.bob.used_in_count, 0) + self.assertEqual(self.bob.used_in_count, 1) self.assertEqual(self.orphan.used_in_count, 1) def test_self_reference(self): diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 040b2c9e68..811acebc69 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -349,6 +349,26 @@ class PartSettingsTest(TestCase): part = Part(name='Hello', description='A thing', IPN='IPN123', revision='C') part.full_clean() + # Any duplicate IPN should raise an error + Part.objects.create(name='xyz', revision='1', description='A part', IPN='UNIQUE') + + # Case insensitive, so variations on spelling should throw an error + for ipn in ['UNiquE', 'uniQuE', 'unique']: + with self.assertRaises(ValidationError): + Part.objects.create(name='xyz', revision='2', description='A part', IPN=ipn) + + with self.assertRaises(ValidationError): + Part.objects.create(name='zyx', description='A part', IPN='UNIQUE') + + # However, *blank* / empty IPN values should be allowed, even if duplicates are not + # Note that leading / trailling whitespace characters are trimmed, too + Part.objects.create(name='abc', revision='1', description='A part', IPN=None) + Part.objects.create(name='abc', revision='2', description='A part', IPN='') + Part.objects.create(name='abc', revision='3', description='A part', IPN=None) + Part.objects.create(name='abc', revision='4', description='A part', IPN=' ') + Part.objects.create(name='abc', revision='5', description='A part', IPN=' ') + Part.objects.create(name='abc', revision='6', description='A part', IPN=' ') + class PartSubscriptionTests(TestCase): diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index 55a3dc52eb..04d2b0a5f8 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -13,18 +13,6 @@ from django.conf.urls import url, include from . import views -sale_price_break_urls = [ - url(r'^new/', views.PartSalePriceBreakCreate.as_view(), name='sale-price-break-create'), - url(r'^(?P\d+)/edit/', views.PartSalePriceBreakEdit.as_view(), name='sale-price-break-edit'), - url(r'^(?P\d+)/delete/', views.PartSalePriceBreakDelete.as_view(), name='sale-price-break-delete'), -] - -internal_price_break_urls = [ - url(r'^new/', views.PartInternalPriceBreakCreate.as_view(), name='internal-price-break-create'), - url(r'^(?P\d+)/edit/', views.PartInternalPriceBreakEdit.as_view(), name='internal-price-break-edit'), - url(r'^(?P\d+)/delete/', views.PartInternalPriceBreakDelete.as_view(), name='internal-price-break-delete'), -] - part_parameter_urls = [ url(r'^template/new/', views.PartParameterTemplateCreate.as_view(), name='part-param-template-create'), url(r'^template/(?P\d+)/edit/', views.PartParameterTemplateEdit.as_view(), name='part-param-template-edit'), @@ -86,12 +74,6 @@ part_urls = [ # Part category url(r'^category/', include(category_urls)), - # Part price breaks - url(r'^sale-price/', include(sale_price_break_urls)), - - # Part internal price breaks - url(r'^internal-price/', include(internal_price_break_urls)), - # Part parameters url(r'^parameter/', include(part_parameter_urls)), diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 9f3cd07f7c..41e734ce2a 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -18,7 +18,6 @@ from django.forms import HiddenInput from django.conf import settings from django.contrib import messages -from moneyed import CURRENCIES from djmoney.contrib.exchange.models import convert_money from djmoney.contrib.exchange.exceptions import MissingRate @@ -33,7 +32,6 @@ from decimal import Decimal from .models import PartCategory, Part from .models import PartParameterTemplate from .models import PartCategoryParameterTemplate -from .models import PartSellPriceBreak, PartInternalPriceBreak from common.models import InvenTreeSetting from company.models import SupplierPart @@ -389,8 +387,12 @@ class PartDetail(InvenTreeRoleMixin, DetailView): context.update(**ctx) + show_price_history = InvenTreeSetting.get_setting('PART_SHOW_PRICE_HISTORY', False) + + context['show_price_history'] = show_price_history + # Pricing information - if InvenTreeSetting.get_setting('PART_SHOW_PRICE_HISTORY', False): + if show_price_history: ctx = self.get_pricing(self.get_quantity()) ctx['form'] = self.form_class(initial=self.get_initials()) @@ -1226,102 +1228,3 @@ class CategoryParameterTemplateDelete(AjaxDeleteView): return None return self.object - - -class PartSalePriceBreakCreate(AjaxCreateView): - """ - View for creating a sale price break for a part - """ - - model = PartSellPriceBreak - form_class = part_forms.EditPartSalePriceBreakForm - ajax_form_title = _('Add Price Break') - - def get_data(self): - return { - 'success': _('Added new price break') - } - - def get_part(self): - try: - part = Part.objects.get(id=self.request.GET.get('part')) - except (ValueError, Part.DoesNotExist): - part = None - - if part is None: - try: - part = Part.objects.get(id=self.request.POST.get('part')) - except (ValueError, Part.DoesNotExist): - part = None - - return part - - def get_form(self): - - form = super(AjaxCreateView, self).get_form() - form.fields['part'].widget = HiddenInput() - - return form - - def get_initial(self): - - initials = super(AjaxCreateView, self).get_initial() - - initials['part'] = self.get_part() - - default_currency = inventree_settings.currency_code_default() - currency = CURRENCIES.get(default_currency, None) - - if currency is not None: - initials['price'] = [1.0, currency] - - return initials - - -class PartSalePriceBreakEdit(AjaxUpdateView): - """ View for editing a sale price break """ - - model = PartSellPriceBreak - form_class = part_forms.EditPartSalePriceBreakForm - ajax_form_title = _('Edit Price Break') - - def get_form(self): - - form = super().get_form() - form.fields['part'].widget = HiddenInput() - - return form - - -class PartSalePriceBreakDelete(AjaxDeleteView): - """ View for deleting a sale price break """ - - model = PartSellPriceBreak - ajax_form_title = _("Delete Price Break") - ajax_template_name = "modal_delete_form.html" - - -class PartInternalPriceBreakCreate(PartSalePriceBreakCreate): - """ View for creating a internal price break for a part """ - - model = PartInternalPriceBreak - form_class = part_forms.EditPartInternalPriceBreakForm - ajax_form_title = _('Add Internal Price Break') - permission_required = 'roles.sales_order.add' - - -class PartInternalPriceBreakEdit(PartSalePriceBreakEdit): - """ View for editing a internal price break """ - - model = PartInternalPriceBreak - form_class = part_forms.EditPartInternalPriceBreakForm - ajax_form_title = _('Edit Internal Price Break') - permission_required = 'roles.sales_order.change' - - -class PartInternalPriceBreakDelete(PartSalePriceBreakDelete): - """ View for deleting a internal price break """ - - model = PartInternalPriceBreak - ajax_form_title = _("Delete Internal Price Break") - permission_required = 'roles.sales_order.delete' diff --git a/InvenTree/plugin/builtin/integration/mixins.py b/InvenTree/plugin/builtin/integration/mixins.py index 118f0b775b..18c1afe64a 100644 --- a/InvenTree/plugin/builtin/integration/mixins.py +++ b/InvenTree/plugin/builtin/integration/mixins.py @@ -504,10 +504,10 @@ class APICallMixin: @property def api_headers(self): - return { - self.API_TOKEN: self.get_setting(self.API_TOKEN_SETTING), - 'Content-Type': 'application/json' - } + headers = {'Content-Type': 'application/json'} + if getattr(self, 'API_TOKEN_SETTING'): + headers[self.API_TOKEN] = self.get_setting(self.API_TOKEN_SETTING) + return headers def api_build_url_args(self, arguments): groups = [] @@ -515,16 +515,21 @@ class APICallMixin: groups.append(f'{key}={",".join([str(a) for a in val])}') return f'?{"&".join(groups)}' - def api_call(self, endpoint, method: str = 'GET', url_args=None, data=None, headers=None, simple_response: bool = True): + def api_call(self, endpoint, method: str = 'GET', url_args=None, data=None, headers=None, simple_response: bool = True, endpoint_is_url: bool = False): if url_args: endpoint += self.api_build_url_args(url_args) if headers is None: headers = self.api_headers + if endpoint_is_url: + url = endpoint + else: + url = f'{self.api_url}/{endpoint}' + # build kwargs for call kwargs = { - 'url': f'{self.api_url}/{endpoint}', + 'url': url, 'headers': headers, } if data: diff --git a/InvenTree/plugin/integration.py b/InvenTree/plugin/integration.py index de95adb8f8..7797134b14 100644 --- a/InvenTree/plugin/integration.py +++ b/InvenTree/plugin/integration.py @@ -94,6 +94,14 @@ class IntegrationPluginBase(MixinBase, plugin_base.InvenTreePluginBase): """ return getattr(self, 'is_package', False) + @property + def is_sample(self): + """ + Is this plugin part of the samples? + """ + path = str(self.package_path) + return path.startswith('plugin/samples/') + # region properties @property def slug(self): diff --git a/InvenTree/report/templates/report/inventree_po_report.html b/InvenTree/report/templates/report/inventree_po_report.html index 2be71f6c38..d1cae75c3b 100644 --- a/InvenTree/report/templates/report/inventree_po_report.html +++ b/InvenTree/report/templates/report/inventree_po_report.html @@ -4,7 +4,6 @@ {% load report %} {% load barcode %} {% load inventree_extras %} -{% load markdownify %} {% block page_margin %} margin: 2cm; @@ -16,7 +15,7 @@ content: "v{{report_revision}} - {{ date.isoformat }}"; {% endblock %} {% block bottom_center %} -content: "InvenTree v{% inventree_version %}"; +content: "{% inventree_version shortstring=True %}"; {% endblock %} {% block style %} diff --git a/InvenTree/report/templates/report/inventree_so_report.html b/InvenTree/report/templates/report/inventree_so_report.html index 255f0c6a50..5cb4900719 100644 --- a/InvenTree/report/templates/report/inventree_so_report.html +++ b/InvenTree/report/templates/report/inventree_so_report.html @@ -16,7 +16,7 @@ content: "v{{report_revision}} - {{ date.isoformat }}"; {% endblock %} {% block bottom_center %} -content: "InvenTree v{% inventree_version %}"; +content: "{% inventree_version shortstring=True %}"; {% endblock %} {% block style %} diff --git a/InvenTree/report/templates/report/inventree_test_report_base.html b/InvenTree/report/templates/report/inventree_test_report_base.html index d702973c30..73ee55c680 100644 --- a/InvenTree/report/templates/report/inventree_test_report_base.html +++ b/InvenTree/report/templates/report/inventree_test_report_base.html @@ -14,7 +14,7 @@ content: "{{ date.isoformat }}"; {% endblock %} {% block bottom_center %} -content: "InvenTree v{% inventree_version %}"; +content: "{% inventree_version shortstring=True %}"; {% endblock %} {% block top_center %} diff --git a/InvenTree/script/translate.py b/InvenTree/script/translate.py deleted file mode 100644 index b41bb96788..0000000000 --- a/InvenTree/script/translate.py +++ /dev/null @@ -1,116 +0,0 @@ -""" -This script is used to simplify the translation process. - -Django provides a framework for working out which strings are "translatable", -and these strings are then dumped in a file under InvenTree/locale//LC_MESSAGES/django.po - -This script presents the translator with a list of strings which have not yet been translated, -allowing for a simpler and quicker translation process. - -If a string translation needs to be updated, this will still need to be done manually, -by editing the appropriate .po file. - -""" - -import argparse -import os -import sys - - -def manually_translate_file(filename, save=False): - """ - Manually translate a .po file. - Present any missing translation strings to the translator, - and write their responses back to the file. - """ - - print("Add manual translations to '{f}'".format(f=filename)) - print("For each missing translation:") - print("a) Directly enter a new tranlation in the target language") - print("b) Leave empty to skip") - print("c) Press Ctrl+C to exit") - - print("-------------------------") - input("Press to start") - print("") - - with open(filename, 'r') as f: - lines = f.readlines() - - out = [] - - # Context data - source_line = '' - msgid = '' - - for num, line in enumerate(lines): - # Keep track of context data BEFORE an empty msgstr object - line = line.strip() - - if line.startswith("#: "): - source_line = line.replace("#: ", "") - - elif line.startswith("msgid "): - msgid = line.replace("msgid ", "") - - if line.strip() == 'msgstr ""': - # We have found an empty translation! - - if msgid and len(msgid) > 0 and not msgid == '""': - print("Source:", source_line) - print("Enter translation for {t}".format(t=msgid)) - - try: - translation = str(input(">")) - except KeyboardInterrupt: - break - - if translation and len(translation) > 0: - # Update the line with the new translation - line = 'msgstr "{msg}"'.format(msg=translation) - - out.append(line + "\r\n") - - if save: - with open(filename, 'w') as output_file: - output_file.writelines(out) - - print("Translation done: written to", filename) - print("Run 'invoke translate' to rebuild translation data") - - -if __name__ == '__main__': - - MY_DIR = os.path.dirname(os.path.realpath(__file__)) - LOCALE_DIR = os.path.join(MY_DIR, '..', 'locale') - - if not os.path.exists(LOCALE_DIR): - print("Error: {d} does not exist!".format(d=LOCALE_DIR)) - sys.exit(1) - - parser = argparse.ArgumentParser(description="InvenTree Translation Helper") - - parser.add_argument('language', help='Language code', action='store') - - parser.add_argument('--fake', help="Do not save updated translations", action='store_true') - - args = parser.parse_args() - - language = args.language - - LANGUAGE_DIR = os.path.abspath(os.path.join(LOCALE_DIR, language)) - - # Check that a locale directory exists for the given language! - if not os.path.exists(LANGUAGE_DIR): - print("Error: Locale directory for language '{l}' does not exist".format(l=language)) - sys.exit(1) - - # Check that a .po file exists for the given language! - PO_FILE = os.path.join(LANGUAGE_DIR, 'LC_MESSAGES', 'django.po') - - if not os.path.exists(PO_FILE): - print("Error: File '{f}' does not exist".format(f=PO_FILE)) - sys.exit(1) - - # Ok, now we run the user through the translation file - manually_translate_file(PO_FILE, save=args.fake is not True) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 34563b38d7..d4fc5c93d1 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -402,11 +402,51 @@ class StockFilter(rest_filters.FilterSet): serialized = rest_filters.BooleanFilter(label='Has serial number', method='filter_serialized') def filter_serialized(self, queryset, name, value): + """ + Filter by whether the StockItem has a serial number (or not) + """ + + q = Q(serial=None) | Q(serial='') if str2bool(value): - queryset = queryset.exclude(serial=None) + queryset = queryset.exclude(q) else: - queryset = queryset.filter(serial=None) + queryset = queryset.filter(q) + + return queryset + + has_batch = rest_filters.BooleanFilter(label='Has batch code', method='filter_has_batch') + + def filter_has_batch(self, queryset, name, value): + """ + Filter by whether the StockItem has a batch code (or not) + """ + + q = Q(batch=None) | Q(batch='') + + if str2bool(value): + queryset = queryset.exclude(q) + else: + queryset = queryset.filter(q) + + return queryset + + tracked = rest_filters.BooleanFilter(label='Tracked', method='filter_tracked') + + def filter_tracked(self, queryset, name, value): + """ + Filter by whether this stock item is *tracked*, meaning either: + - It has a serial number + - It has a batch code + """ + + q_batch = Q(batch=None) | Q(batch='') + q_serial = Q(serial=None) | Q(serial='') + + if str2bool(value): + queryset = queryset.exclude(q_batch & q_serial) + else: + queryset = queryset.filter(q_batch & q_serial) return queryset @@ -1105,7 +1145,6 @@ class StockItemTestResultList(generics.ListCreateAPIView): ] filter_fields = [ - 'stock_item', 'test', 'user', 'result', @@ -1114,6 +1153,38 @@ class StockItemTestResultList(generics.ListCreateAPIView): ordering = 'date' + def filter_queryset(self, queryset): + + params = self.request.query_params + + queryset = super().filter_queryset(queryset) + + # Filter by stock item + item = params.get('stock_item', None) + + if item is not None: + try: + item = StockItem.objects.get(pk=item) + + items = [item] + + # Do we wish to also include test results for 'installed' items? + include_installed = str2bool(params.get('include_installed', False)) + + if include_installed: + # Include items which are installed "underneath" this item + # Note that this function is recursive! + installed_items = item.get_installed_items(cascade=True) + + items += [it for it in installed_items] + + queryset = queryset.filter(stock_item__in=items) + + except (ValueError, StockItem.DoesNotExist): + pass + + return queryset + def get_serializer(self, *args, **kwargs): try: kwargs['user_detail'] = str2bool(self.request.query_params.get('user_detail', False)) @@ -1189,6 +1260,15 @@ class StockTrackingList(generics.ListAPIView): if not deltas: deltas = {} + # Add part detail + if 'part' in deltas: + try: + part = Part.objects.get(pk=deltas['part']) + serializer = PartBriefSerializer(part) + deltas['part_detail'] = serializer.data + except: + pass + # Add location detail if 'location' in deltas: try: diff --git a/InvenTree/stock/fixtures/stock.yaml b/InvenTree/stock/fixtures/stock.yaml index 0f44828d8e..2fd5b7eb92 100644 --- a/InvenTree/stock/fixtures/stock.yaml +++ b/InvenTree/stock/fixtures/stock.yaml @@ -251,3 +251,104 @@ rght: 0 expiry_date: "1990-10-10" status: 70 + +# Multiple stock items for "Bob" (PK 100) +- model: stock.stockitem + pk: 1000 + fields: + part: 100 + location: 1 + quantity: 10 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1001 + fields: + part: 100 + location: 1 + quantity: 11 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1002 + fields: + part: 100 + location: 1 + quantity: 12 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1003 + fields: + part: 100 + location: 1 + quantity: 13 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1004 + fields: + part: 100 + location: 1 + quantity: 14 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1005 + fields: + part: 100 + location: 1 + quantity: 15 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1006 + fields: + part: 100 + location: 1 + quantity: 16 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1007 + fields: + part: 100 + location: 7 + quantity: 17 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + +- model: stock.stockitem + pk: 1008 + fields: + part: 100 + location: 7 + quantity: 18 + level: 0 + tree_id: 0 + lft: 0 + rght: 0 + \ No newline at end of file diff --git a/InvenTree/stock/migrations/0074_alter_stockitem_batch.py b/InvenTree/stock/migrations/0074_alter_stockitem_batch.py new file mode 100644 index 0000000000..646e25199a --- /dev/null +++ b/InvenTree/stock/migrations/0074_alter_stockitem_batch.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.12 on 2022-04-26 10:19 + +from django.db import migrations, models +import stock.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0073_alter_stockitem_belongs_to'), + ] + + operations = [ + migrations.AlterField( + model_name='stockitem', + name='batch', + field=models.CharField(blank=True, default=stock.models.generate_batch_code, help_text='Batch code for this stock item', max_length=100, null=True, verbose_name='Batch Code'), + ), + ] diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 171ee7e0a3..39697c1bca 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -8,6 +8,8 @@ from __future__ import unicode_literals import os +from jinja2 import Template + from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError, FieldError from django.urls import reverse @@ -213,6 +215,32 @@ class StockItemManager(TreeManager): ) +def generate_batch_code(): + """ + Generate a default 'batch code' for a new StockItem. + + This uses the value of the 'STOCK_BATCH_CODE_TEMPLATE' setting (if configured), + which can be passed through a simple template. + """ + + batch_template = common.models.InvenTreeSetting.get_setting('STOCK_BATCH_CODE_TEMPLATE', '') + + now = datetime.now() + + # Pass context data through to the template randering. + # The folowing context variables are availble for custom batch code generation + context = { + 'date': now, + 'year': now.year, + 'month': now.month, + 'day': now.day, + 'hour': now.minute, + 'minute': now.minute, + } + + return Template(batch_template).render(context) + + class StockItem(MPTTModel): """ A StockItem object represents a quantity of physical instances of a part. @@ -453,6 +481,14 @@ class StockItem(MPTTModel): super().clean() + # Strip serial number field + if type(self.serial) is str: + self.serial = self.serial.strip() + + # Strip batch code field + if type(self.batch) is str: + self.batch = self.batch.strip() + try: if self.part.trackable: # Trackable parts must have integer values for quantity field! @@ -636,7 +672,8 @@ class StockItem(MPTTModel): batch = models.CharField( verbose_name=_('Batch Code'), max_length=100, blank=True, null=True, - help_text=_('Batch code for this stock item') + help_text=_('Batch code for this stock item'), + default=generate_batch_code, ) quantity = models.DecimalField( @@ -718,6 +755,33 @@ class StockItem(MPTTModel): help_text=_('Select Owner'), related_name='stock_items') + @transaction.atomic + def convert_to_variant(self, variant, user, notes=None): + """ + Convert this StockItem instance to a "variant", + i.e. change the "part" reference field + """ + + if not variant: + # Ignore null values + return + + if variant == self.part: + # Variant is the same as the current part + return + + self.part = variant + self.save() + + self.add_tracking_entry( + StockHistoryCode.CONVERTED_TO_VARIANT, + user, + deltas={ + 'part': variant.pk, + }, + notes=_('Converted to part') + ': ' + variant.full_name, + ) + def get_item_owner(self): """ Return the closest "owner" for this StockItem. diff --git a/InvenTree/stock/templates/stock/item.html b/InvenTree/stock/templates/stock/item.html index 40d99577f9..75e53d6758 100644 --- a/InvenTree/stock/templates/stock/item.html +++ b/InvenTree/stock/templates/stock/item.html @@ -4,7 +4,6 @@ {% load inventree_extras %} {% load i18n %} {% load l10n %} -{% load markdownify %} {% block sidebar %} {% include "stock/stock_sidebar.html" %} @@ -27,11 +26,12 @@
          -
          +
          + {% include "filter_list.html" with id="stocktracking" %}
          - +
          @@ -133,24 +133,16 @@
          -
          -
          -

          {% trans "Stock Item Notes" %}

          -
          -
          -
          - -
          +
          +

          {% trans "Stock Item Notes" %}

          + {% include "spacer.html" %} +
          + {% include "notes_buttons.html" %}
          - {% if item.notes %} - {{ item.notes | markdownify }} - {% endif %} +
          @@ -235,18 +227,21 @@ reload: true, } ); - }); - $('#edit-notes').click(function() { - constructForm('{% url "api-stock-detail" item.pk %}', { - fields: { - notes: { - multiline: true, - } - }, - title: '{% trans "Edit Notes" %}', - reload: true, - }); + }); + + onPanelLoad('notes', function() { + setupNotesField( + 'stock-notes', + '{% url "api-stock-detail" item.pk %}', + { + {% if roles.stock.change and user_owns_item %} + editable: true, + {% else %} + editable: false, + {% endif %} + } + ); }); enableDragAndDrop( @@ -348,7 +343,6 @@ ); }); - loadStockTrackingTable($("#track-table"), { params: { ordering: '-date', diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 7dc06664e1..dd77d26d1c 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -49,15 +49,20 @@
          {% endif %} +{% if test_report_enabled or labels_enabled %}
          +{% endif %} + {% if user_owns_item %} {% if roles.stock.change and not item.is_building %} @@ -500,7 +505,12 @@ $("#barcode-unlink").click(function() { }); $("#barcode-scan-into-location").click(function() { - scanItemsIntoLocation([{{ item.id }}]); + + inventreeGet('{% url "api-stock-detail" item.pk %}', {}, { + success: function(item) { + scanItemsIntoLocation([item]); + } + }); }); function itemAdjust(action) { diff --git a/InvenTree/stock/templates/stock/location.html b/InvenTree/stock/templates/stock/location.html index 45dcc0ba59..61320a2676 100644 --- a/InvenTree/stock/templates/stock/location.html +++ b/InvenTree/stock/templates/stock/location.html @@ -34,7 +34,9 @@
          @@ -181,6 +183,7 @@
          + {% if labels_enabled %}
        + {% endif %} {% include "filter_list.html" with id="location" %} @@ -222,6 +226,15 @@ ] ); + {% if labels_enabled %} + $('#print-label').click(function() { + + var locs = [{{ location.pk }}]; + + printStockLocationLabels(locs); + + }); + $('#multi-location-print-label').click(function() { var selections = $('#sublocation-table').bootstrapTable('getSelections'); @@ -234,6 +247,7 @@ printStockLocationLabels(locations); }); + {% endif %} {% if location %} $("#barcode-check-in").click(function() { @@ -298,14 +312,6 @@ adjustLocationStock('move'); }); - $('#print-label').click(function() { - - var locs = [{{ location.pk }}]; - - printStockLocationLabels(locs); - - }); - {% endif %} $('#show-qr-code').click(function() { diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py index 81973aed31..7f94c6dedf 100644 --- a/InvenTree/stock/test_api.py +++ b/InvenTree/stock/test_api.py @@ -104,7 +104,7 @@ class StockItemListTest(StockAPITestCase): response = self.get_stock() - self.assertEqual(len(response), 20) + self.assertEqual(len(response), 29) def test_filter_by_part(self): """ @@ -113,7 +113,7 @@ class StockItemListTest(StockAPITestCase): response = self.get_stock(part=25) - self.assertEqual(len(response), 8) + self.assertEqual(len(response), 17) response = self.get_stock(part=10004) @@ -136,13 +136,13 @@ class StockItemListTest(StockAPITestCase): self.assertEqual(len(response), 1) response = self.get_stock(location=1, cascade=0) - self.assertEqual(len(response), 0) + self.assertEqual(len(response), 7) response = self.get_stock(location=1, cascade=1) - self.assertEqual(len(response), 2) + self.assertEqual(len(response), 9) response = self.get_stock(location=7) - self.assertEqual(len(response), 16) + self.assertEqual(len(response), 18) def test_filter_by_depleted(self): """ @@ -153,7 +153,7 @@ class StockItemListTest(StockAPITestCase): self.assertEqual(len(response), 1) response = self.get_stock(depleted=0) - self.assertEqual(len(response), 19) + self.assertEqual(len(response), 28) def test_filter_by_in_stock(self): """ @@ -161,7 +161,7 @@ class StockItemListTest(StockAPITestCase): """ response = self.get_stock(in_stock=1) - self.assertEqual(len(response), 17) + self.assertEqual(len(response), 26) response = self.get_stock(in_stock=0) self.assertEqual(len(response), 3) @@ -172,7 +172,7 @@ class StockItemListTest(StockAPITestCase): """ codes = { - StockStatus.OK: 18, + StockStatus.OK: 27, StockStatus.DESTROYED: 1, StockStatus.LOST: 1, StockStatus.DAMAGED: 0, @@ -205,11 +205,51 @@ class StockItemListTest(StockAPITestCase): self.assertIsNotNone(item['serial']) response = self.get_stock(serialized=0) - self.assertEqual(len(response), 8) + self.assertEqual(len(response), 17) for item in response: self.assertIsNone(item['serial']) + def test_filter_by_has_batch(self): + """ + Test the 'has_batch' filter, which tests if the stock item has been assigned a batch code + """ + + with_batch = self.get_stock(has_batch=1) + without_batch = self.get_stock(has_batch=0) + + n_stock_items = StockItem.objects.all().count() + + # Total sum should equal the total count of stock items + self.assertEqual(n_stock_items, len(with_batch) + len(without_batch)) + + for item in with_batch: + self.assertFalse(item['batch'] in [None, '']) + + for item in without_batch: + self.assertTrue(item['batch'] in [None, '']) + + def test_filter_by_tracked(self): + """ + Test the 'tracked' filter. + This checks if the stock item has either a batch code *or* a serial number + """ + + tracked = self.get_stock(tracked=True) + untracked = self.get_stock(tracked=False) + + n_stock_items = StockItem.objects.all().count() + + self.assertEqual(n_stock_items, len(tracked) + len(untracked)) + + blank = [None, ''] + + for item in tracked: + self.assertTrue(item['batch'] not in blank or item['serial'] not in blank) + + for item in untracked: + self.assertTrue(item['batch'] in blank and item['serial'] in blank) + def test_filter_by_expired(self): """ Filter StockItem by expiry status @@ -217,7 +257,7 @@ class StockItemListTest(StockAPITestCase): # First, we can assume that the 'stock expiry' feature is disabled response = self.get_stock(expired=1) - self.assertEqual(len(response), 20) + self.assertEqual(len(response), 29) self.user.is_staff = True self.user.save() @@ -232,7 +272,7 @@ class StockItemListTest(StockAPITestCase): self.assertTrue(item['expired']) response = self.get_stock(expired=0) - self.assertEqual(len(response), 19) + self.assertEqual(len(response), 28) for item in response: self.assertFalse(item['expired']) @@ -249,7 +289,7 @@ class StockItemListTest(StockAPITestCase): self.assertEqual(len(response), 4) response = self.get_stock(expired=0) - self.assertEqual(len(response), 16) + self.assertEqual(len(response), 25) def test_paginate(self): """ @@ -290,7 +330,8 @@ class StockItemListTest(StockAPITestCase): dataset = self.export_data({}) - self.assertEqual(len(dataset), 20) + # Check that *all* stock item objects have been exported + self.assertEqual(len(dataset), StockItem.objects.count()) # Expected headers headers = [ @@ -308,11 +349,11 @@ class StockItemListTest(StockAPITestCase): # Now, add a filter to the results dataset = self.export_data({'location': 1}) - self.assertEqual(len(dataset), 2) + self.assertEqual(len(dataset), 9) dataset = self.export_data({'part': 25}) - self.assertEqual(len(dataset), 8) + self.assertEqual(len(dataset), 17) class StockItemTest(StockAPITestCase): diff --git a/InvenTree/stock/tests.py b/InvenTree/stock/tests.py index 50f77a593b..97639b15bd 100644 --- a/InvenTree/stock/tests.py +++ b/InvenTree/stock/tests.py @@ -167,8 +167,8 @@ class StockTest(TestCase): self.assertFalse(self.drawer2.has_items()) # Drawer 3 should have three stock items - self.assertEqual(self.drawer3.stock_items.count(), 16) - self.assertEqual(self.drawer3.item_count, 16) + self.assertEqual(self.drawer3.stock_items.count(), 18) + self.assertEqual(self.drawer3.item_count, 18) def test_stock_count(self): part = Part.objects.get(pk=1) diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 079f9c2dc9..b0661dd0e3 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -644,6 +644,16 @@ class StockItemConvert(AjaxUpdateView): return form + def save(self, obj, form): + + stock_item = self.get_object() + + variant = form.cleaned_data.get('part', None) + + stock_item.convert_to_variant(variant, user=self.request.user) + + return stock_item + class StockLocationCreate(AjaxCreateView): """ diff --git a/InvenTree/templates/403.html b/InvenTree/templates/403.html index 372bd9fe27..4ee8367d9c 100644 --- a/InvenTree/templates/403.html +++ b/InvenTree/templates/403.html @@ -1,8 +1,9 @@ {% extends "base.html" %} {% load i18n %} +{% load inventree_extras %} {% block page_title %} -InvenTree | {% trans "Permission Denied" %} +{% inventree_title %} | {% trans "Permission Denied" %} {% endblock %} {% block content %} diff --git a/InvenTree/templates/404.html b/InvenTree/templates/404.html index 3cb6464d99..aae55031f3 100644 --- a/InvenTree/templates/404.html +++ b/InvenTree/templates/404.html @@ -1,8 +1,9 @@ {% extends "base.html" %} {% load i18n %} +{% load inventree_extras %} {% block page_title %} -InvenTree | {% trans "Page Not Found" %} +{% inventree_title %} | {% trans "Page Not Found" %} {% endblock %} {% block content %} diff --git a/InvenTree/templates/500.html b/InvenTree/templates/500.html index 3fab6c0a17..f50a5ea6fe 100644 --- a/InvenTree/templates/500.html +++ b/InvenTree/templates/500.html @@ -1,8 +1,9 @@ {% extends "base.html" %} {% load i18n %} +{% load inventree_extras %} {% block page_title %} -InvenTree | {% trans "Internal Server Error" %} +{% inventree_title %} | {% trans "Internal Server Error" %} {% endblock %} {% block content %} @@ -11,7 +12,7 @@ InvenTree | {% trans "Internal Server Error" %}

        {% trans "Internal Server Error" %}

        - {% trans "The InvenTree server raised an internal error" %}
        + {% blocktrans %}The {{ inventree_title }} server raised an internal error{% endblocktrans %}
        {% trans "Refer to the error log in the admin interface for further details" %}
        diff --git a/InvenTree/templates/503.html b/InvenTree/templates/503.html index fbee60c694..7b5b25d611 100644 --- a/InvenTree/templates/503.html +++ b/InvenTree/templates/503.html @@ -30,7 +30,7 @@
        diff --git a/InvenTree/templates/InvenTree/settings/global.html b/InvenTree/templates/InvenTree/settings/global.html index 60ae84f001..4d36d59369 100644 --- a/InvenTree/templates/InvenTree/settings/global.html +++ b/InvenTree/templates/InvenTree/settings/global.html @@ -15,6 +15,7 @@ {% include "InvenTree/settings/setting.html" with key="INVENTREE_INSTANCE" icon="fa-info-circle" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_INSTANCE_TITLE" icon="fa-info-circle" %} + {% include "InvenTree/settings/setting.html" with key="INVENTREE_RESTRICT_ABOUT" icon="fa-info-circle" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_BASE_URL" icon="fa-globe" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_COMPANY_NAME" icon="fa-building" %} {% include "InvenTree/settings/setting.html" with key="INVENTREE_DOWNLOAD_FROM_URL" icon="fa-cloud-download-alt" %} diff --git a/InvenTree/templates/InvenTree/settings/plugin.html b/InvenTree/templates/InvenTree/settings/plugin.html index 139ce0d41a..94a166c84a 100644 --- a/InvenTree/templates/InvenTree/settings/plugin.html +++ b/InvenTree/templates/InvenTree/settings/plugin.html @@ -13,7 +13,7 @@ {% block content %}
        - {% trans "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage." %} + {% trans "Changing the settings below require you to immediatly restart the server. Do not change this while under active usage." %}
        @@ -24,6 +24,7 @@ {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_URL" icon="fa-link" %} {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_NAVIGATION" icon="fa-sitemap" %} {% include "InvenTree/settings/setting.html" with key="ENABLE_PLUGINS_APP" icon="fa-rocket" %} + {% include "InvenTree/settings/setting.html" with key="PLUGIN_ON_STARTUP" %}
        @@ -76,6 +77,12 @@ {% endfor %} {% endif %} + {% if plugin.is_sample %} + + {% trans "code sample" %} + + {% endif %} + {% if plugin.website %} {% endif %} diff --git a/InvenTree/templates/InvenTree/settings/plugin_settings.html b/InvenTree/templates/InvenTree/settings/plugin_settings.html index 9c5fa2d7c0..79150ec879 100644 --- a/InvenTree/templates/InvenTree/settings/plugin_settings.html +++ b/InvenTree/templates/InvenTree/settings/plugin_settings.html @@ -85,7 +85,7 @@ {% if plugin.is_package %} {% trans "This plugin was installed as a package" %} {% else %} - {% trans "This plugin was found in a local InvenTree path" %} + {% trans "This plugin was found in a local server path" %} {% endif %} diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html index dbb526cfd3..0039e8ee1a 100644 --- a/InvenTree/templates/InvenTree/settings/settings.html +++ b/InvenTree/templates/InvenTree/settings/settings.html @@ -89,7 +89,7 @@ $('table').find('.boolean-setting').change(function() { }, { method: 'PATCH', - onSuccess: function(data) { + success: function(data) { }, error: function(xhr) { showApiError(xhr, url); diff --git a/InvenTree/templates/InvenTree/settings/stock.html b/InvenTree/templates/InvenTree/settings/stock.html index a3c0940c1f..f0cd403d68 100644 --- a/InvenTree/templates/InvenTree/settings/stock.html +++ b/InvenTree/templates/InvenTree/settings/stock.html @@ -11,6 +11,7 @@ + {% include "InvenTree/settings/setting.html" with key="STOCK_BATCH_CODE_TEMPLATE" icon="fa-layer-group" %} {% include "InvenTree/settings/setting.html" with key="STOCK_ENABLE_EXPIRY" icon="fa-stopwatch" %} {% include "InvenTree/settings/setting.html" with key="STOCK_STALE_DAYS" icon="fa-calendar" %} {% include "InvenTree/settings/setting.html" with key="STOCK_ALLOW_EXPIRED_SALE" icon="fa-truck" %} diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html index 32bc4d43e7..d3d1e35210 100644 --- a/InvenTree/templates/InvenTree/settings/user.html +++ b/InvenTree/templates/InvenTree/settings/user.html @@ -13,15 +13,15 @@ {% endblock %} {% block actions %} -{% inventree_demo_mode as demo %} -{% if not demo %} +{% inventree_customize 'hide_password_reset' as hide_password_reset %} +{% if not hide_password_reset %}
        {% trans "Set Password" %}
        +{% endif %}
        {% trans "Edit" %}
        -{% endif %} {% endblock %} {% block content %} diff --git a/InvenTree/templates/InvenTree/settings/user_display.html b/InvenTree/templates/InvenTree/settings/user_display.html index f5e74b04c1..1f52c095ac 100644 --- a/InvenTree/templates/InvenTree/settings/user_display.html +++ b/InvenTree/templates/InvenTree/settings/user_display.html @@ -101,7 +101,7 @@

        {% trans "Help the translation efforts!" %}

        -

        {% blocktrans with link="https://crowdin.com/project/inventree" %}Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.{% endblocktrans %}

        +

        {% blocktrans with link="https://crowdin.com/project/inventree" %}Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged.{% endblocktrans %}

        diff --git a/InvenTree/templates/InvenTree/settings/user_labels.html b/InvenTree/templates/InvenTree/settings/user_labels.html index a2d9b7b89c..6a27ef05bc 100644 --- a/InvenTree/templates/InvenTree/settings/user_labels.html +++ b/InvenTree/templates/InvenTree/settings/user_labels.html @@ -14,6 +14,7 @@
        + {% include "InvenTree/settings/setting.html" with key="LABEL_ENABLE" icon='fa-toggle-on' user_setting=True %} {% include "InvenTree/settings/setting.html" with key="LABEL_INLINE" icon='fa-tag' user_setting=True %}
        diff --git a/InvenTree/templates/InvenTree/settings/user_search.html b/InvenTree/templates/InvenTree/settings/user_search.html index 51df53ee6b..1883110b80 100644 --- a/InvenTree/templates/InvenTree/settings/user_search.html +++ b/InvenTree/templates/InvenTree/settings/user_search.html @@ -14,8 +14,16 @@
        + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_PARTS" user_setting=True icon='fa-shapes' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_CATEGORIES" user_setting=True icon='fa-sitemap' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_STOCK" user_setting=True icon='fa-boxes' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_LOCATIONS" user_setting=True icon='fa-sitemap' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_COMPANIES" user_setting=True icon='fa-building' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_PURCHASE_ORDERS" user_setting=True icon='fa-shopping-cart' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_SHOW_SALES_ORDERS" user_setting=True icon='fa-truck' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_RESULTS" user_setting=True icon='fa-search' %} - {% include "InvenTree/settings/setting.html" with key="SEARCH_SHOW_STOCK_LEVELS" user_setting=True icon='fa-boxes' %} + {% include "InvenTree/settings/setting.html" with key="SEARCH_HIDE_INACTIVE_PARTS" user_setting=True icon='fa-eye-slash' %}
        diff --git a/InvenTree/templates/account/base.html b/InvenTree/templates/account/base.html index 6c54faac67..9a68f7ba31 100644 --- a/InvenTree/templates/account/base.html +++ b/InvenTree/templates/account/base.html @@ -67,7 +67,7 @@
        @@ -89,7 +89,7 @@ - + diff --git a/InvenTree/templates/account/login.html b/InvenTree/templates/account/login.html index 6e62560bfa..042c119440 100644 --- a/InvenTree/templates/account/login.html +++ b/InvenTree/templates/account/login.html @@ -10,8 +10,8 @@ {% settings_value 'LOGIN_ENABLE_REG' as enable_reg %} {% settings_value 'LOGIN_ENABLE_PWD_FORGOT' as enable_pwd_forgot %} {% settings_value 'LOGIN_ENABLE_SSO' as enable_sso %} +{% inventree_customize 'login_message' as login_message %} {% mail_configured as mail_conf %} -{% inventree_demo_mode as demo %}

        {% trans "Sign In" %}

        @@ -35,19 +35,15 @@ for a account and sign in below:{% endblocktrans %}

        {% endif %}
        + {% if login_message %} +
        {{ login_message | safe }}
        + {% endif %}
        - {% if mail_conf and enable_pwd_forgot and not demo %} + {% if mail_conf and enable_pwd_forgot %} {% trans "Forgot Password?" %} {% endif %} - {% if demo %} -

        -

        - {% trans "InvenTree demo instance" %} - {% trans "Click here for login details" %} -
        -

        - {% endif %} {% if enable_sso %} diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index c7a72f729b..483a8ca6ad 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -6,7 +6,8 @@ {% settings_value 'REPORT_ENABLE_TEST_REPORT' as test_report_enabled %} {% settings_value "REPORT_ENABLE" as report_enabled %} {% settings_value "SERVER_RESTART_REQUIRED" as server_restart_required %} -{% inventree_demo_mode as demo_mode %} +{% settings_value "LABEL_ENABLE" with user=user as labels_enabled %} +{% inventree_show_about user as show_about %} @@ -47,6 +48,7 @@ + @@ -91,7 +93,7 @@ {% block alerts %}
        - {% if server_restart_required and not demo_mode %} + {% if server_restart_required %} + {% include 'modals.html' %} - {% include 'about.html' %} + {% if show_about %}{% include 'about.html' %}{% endif %} {% include "notifications.html" %} + {% include "search.html" %}
        @@ -157,12 +161,13 @@ + - + @@ -186,6 +191,7 @@ + diff --git a/InvenTree/templates/email/email.html b/InvenTree/templates/email/email.html index 97e9a40f37..0b3c944da4 100644 --- a/InvenTree/templates/email/email.html +++ b/InvenTree/templates/email/email.html @@ -32,7 +32,7 @@ {% block footer_prefix %} {% endblock %} -

        {% trans "InvenTree version" %}: {% inventree_version %} - inventree.readthedocs.io

        +

        {% inventree_version shortstring=True %} - readthedocs.io

        {% block footer_suffix %} {% endblock %} diff --git a/InvenTree/templates/js/dynamic/settings.js b/InvenTree/templates/js/dynamic/settings.js index 4e7d36f72b..2832bd3482 100644 --- a/InvenTree/templates/js/dynamic/settings.js +++ b/InvenTree/templates/js/dynamic/settings.js @@ -4,6 +4,7 @@ editSetting, user_settings, global_settings, + plugins_enabled, */ {% user_settings request.user as USER_SETTINGS %} @@ -20,6 +21,13 @@ const global_settings = { {% endfor %} }; +{% plugins_enabled as p_en %} +{% if p_en %} +const plugins_enabled = true; +{% else %} +const plugins_enabled = false; +{% endif %} + /* * Edit a setting value */ diff --git a/InvenTree/templates/js/translated/api.js b/InvenTree/templates/js/translated/api.js index eadf2e2afc..fccd6bf5ef 100644 --- a/InvenTree/templates/js/translated/api.js +++ b/InvenTree/templates/js/translated/api.js @@ -179,6 +179,11 @@ function showApiError(xhr, url) { var title = null; var message = null; + if (xhr.statusText == 'abort') { + // Don't show errors for requests which were intentionally aborted + return; + } + switch (xhr.status || 0) { // No response case 0: diff --git a/InvenTree/templates/js/translated/barcode.js b/InvenTree/templates/js/translated/barcode.js index 9b12efc446..90e14d2d66 100644 --- a/InvenTree/templates/js/translated/barcode.js +++ b/InvenTree/templates/js/translated/barcode.js @@ -411,14 +411,13 @@ function unlinkBarcode(stockitem) { /* * Display dialog to check multiple stock items in to a stock location. */ -function barcodeCheckIn(location_id) { +function barcodeCheckIn(location_id, options={}) { var modal = '#modal-form'; // List of items we are going to checkin var items = []; - function reloadTable() { modalEnable(modal, false); @@ -441,10 +440,17 @@ function barcodeCheckIn(location_id) { `; items.forEach(function(item) { + + var location_info = `${item.location}`; + + if (item.location_detail) { + location_info = `${item.location_detail.name}`; + } + html += ` ${imageHoverIcon(item.part_detail.thumbnail)} ${item.part_detail.name} - ${item.location_detail.name} + ${location_info} ${item.quantity} ${makeIconButton('fa-times-circle icon-red', 'button-item-remove', item.pk, '{% trans "Remove stock item" %}')} `; @@ -521,6 +527,12 @@ function barcodeCheckIn(location_id) { data.items = entries; + // Prevent submission without any entries + if (entries.length == 0) { + showBarcodeMessage(modal, '{% trans "No barcode provided" %}', 'warning'); + return; + } + inventreePut( '{% url "api-stock-transfer" %}', data, @@ -529,15 +541,11 @@ function barcodeCheckIn(location_id) { success: function(response, status) { // Hide the modal $(modal).modal('hide'); - if (status == 'success' && 'success' in response) { - addCachedAlert(response.success); - location.reload(); + if (options.success) { + options.success(response); } else { - showMessage('{% trans "Error transferring stock" %}', { - style: 'danger', - icon: 'fas fa-times-circle', - }); + location.reload(); } } } @@ -585,7 +593,7 @@ function barcodeCheckIn(location_id) { /* * Display dialog to check a single stock item into a stock location */ -function scanItemsIntoLocation(item_id_list, options={}) { +function scanItemsIntoLocation(item_list, options={}) { var modal = options.modal || '#modal-form'; @@ -635,9 +643,10 @@ function scanItemsIntoLocation(item_id_list, options={}) { var items = []; - item_id_list.forEach(function(pk) { + item_list.forEach(function(item) { items.push({ - pk: pk, + pk: item.pk || item.id, + quantity: item.quantity, }); }); @@ -657,13 +666,10 @@ function scanItemsIntoLocation(item_id_list, options={}) { // First hide the modal $(modal).modal('hide'); - if (status == 'success' && 'success' in response) { - addCachedAlert(response.success); - location.reload(); + if (options.success) { + options.success(response); } else { - showMessage('{% trans "Error transferring stock" %}', { - style: 'danger', - }); + location.reload(); } } } diff --git a/InvenTree/templates/js/translated/bom.js b/InvenTree/templates/js/translated/bom.js index 93e1562a38..2d7796edcd 100644 --- a/InvenTree/templates/js/translated/bom.js +++ b/InvenTree/templates/js/translated/bom.js @@ -691,8 +691,24 @@ function loadBomTable(table, options={}) { setupFilterList('bom', $(table)); - // Construct the table columns + function availableQuantity(row) { + // Base stock + var available = row.available_stock; + + // Substitute stock + available += (row.available_substitute_stock || 0); + + // Variant stock + if (row.allow_variants) { + available += (row.available_variant_stock || 0); + } + + return available; + + } + + // Construct the table columns var cols = []; if (options.editable) { @@ -798,17 +814,37 @@ function loadBomTable(table, options={}) { }); cols.push({ - field: 'sub_part_detail.stock', + field: 'available_stock', title: '{% trans "Available" %}', searchable: false, sortable: true, formatter: function(value, row) { var url = `/part/${row.sub_part_detail.pk}/?display=part-stock`; - var text = value; - if (value == null || value <= 0) { - text = `{% trans "No Stock" %}`; + // Calculate total "available" (unallocated) quantity + var substitute_stock = row.available_substitute_stock || 0; + var variant_stock = row.allow_variants ? (row.available_variant_stock || 0) : 0; + + var available_stock = availableQuantity(row); + + var text = `${available_stock}`; + + if (available_stock <= 0) { + text = `{% trans "No Stock Available" %}`; + } else { + var extra = ''; + if ((substitute_stock > 0) && (variant_stock > 0)) { + extra = '{% trans "Includes variant and substitute stock" %}'; + } else if (variant_stock > 0) { + extra = '{% trans "Includes variant stock" %}'; + } else if (substitute_stock > 0) { + extra = '{% trans "Includes substitute stock" %}'; + } + + if (extra) { + text += ``; + } } return renderLink(text, url); @@ -902,8 +938,10 @@ function loadBomTable(table, options={}) { formatter: function(value, row) { var can_build = 0; + var available = availableQuantity(row); + if (row.quantity > 0) { - can_build = row.sub_part_detail.stock / row.quantity; + can_build = available / row.quantity; } return +can_build.toFixed(2); @@ -914,11 +952,11 @@ function loadBomTable(table, options={}) { var cb_b = 0; if (rowA.quantity > 0) { - cb_a = rowA.sub_part_detail.stock / rowA.quantity; + cb_a = availableQuantity(rowA) / rowA.quantity; } if (rowB.quantity > 0) { - cb_b = rowB.sub_part_detail.stock / rowB.quantity; + cb_b = availableQuantity(rowB) / rowB.quantity; } return (cb_a > cb_b) ? 1 : -1; diff --git a/InvenTree/templates/js/translated/build.js b/InvenTree/templates/js/translated/build.js index 46f7f32e42..65fc3a4d6c 100644 --- a/InvenTree/templates/js/translated/build.js +++ b/InvenTree/templates/js/translated/build.js @@ -1025,9 +1025,27 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { } // Store the required quantity in the row data - row.required = quantity; + // Prevent weird rounding issues + row.required = parseFloat(quantity.toFixed(15)); + + return row.required; + } + + function availableQuantity(row) { + + // Base stock + var available = row.available_stock; + + // Substitute stock + available += (row.available_substitute_stock || 0); + + // Variant stock + if (row.allow_variants) { + available += (row.available_variant_stock || 0); + } + + return available; - return quantity; } function sumAllocations(row) { @@ -1043,9 +1061,9 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { quantity += item.quantity; }); - row.allocated = quantity; + row.allocated = parseFloat(quantity.toFixed(15)); - return quantity; + return row.allocated; } function setupCallbacks() { @@ -1420,9 +1438,56 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { sortable: true, }, { - field: 'sub_part_detail.stock', + field: 'available_stock', title: '{% trans "Available" %}', sortable: true, + formatter: function(value, row) { + + var url = `/part/${row.sub_part_detail.pk}/?display=part-stock`; + + // Calculate total "available" (unallocated) quantity + var substitute_stock = row.available_substitute_stock || 0; + var variant_stock = row.allow_variants ? (row.available_variant_stock || 0) : 0; + + var available_stock = availableQuantity(row); + + var required = requiredQuantity(row); + + var text = ''; + + if (available_stock > 0) { + text += `${available_stock}`; + } + + if (available_stock < required) { + text += ``; + } else { + text += ``; + } + + if (available_stock <= 0) { + text += `{% trans "No Stock Available" %}`; + } else { + var extra = ''; + if ((substitute_stock > 0) && (variant_stock > 0)) { + extra = '{% trans "Includes variant and substitute stock" %}'; + } else if (variant_stock > 0) { + extra = '{% trans "Includes variant stock" %}'; + } else if (substitute_stock > 0) { + extra = '{% trans "Includes substitute stock" %}'; + } + + if (extra) { + text += ``; + } + } + + return renderLink(text, url); + }, + sorter: function(valA, valB, rowA, rowB) { + + return availableQuantity(rowA) > availableQuantity(rowB) ? 1 : -1; + }, }, { field: 'allocated', @@ -1642,6 +1707,9 @@ function allocateStockToBuild(build_id, part_id, bom_items, options={}) { remaining = 0; } + // Ensure the quantity sent to the form field is correctly formatted + remaining = parseFloat(remaining.toFixed(15)); + // We only care about entries which are not yet fully allocated if (remaining > 0) { table_entries += renderBomItemRow(bom_item, remaining); @@ -1742,7 +1810,7 @@ function allocateStockToBuild(build_id, part_id, bom_items, options={}) { required: true, render_part_detail: true, render_location_detail: true, - render_stock_id: false, + render_pk: false, auto_fill: true, auto_fill_filters: auto_fill_filters, onSelect: function(data, field, opts) { diff --git a/InvenTree/templates/js/translated/helpers.js b/InvenTree/templates/js/translated/helpers.js index 1925cb47ac..c464ad3645 100644 --- a/InvenTree/templates/js/translated/helpers.js +++ b/InvenTree/templates/js/translated/helpers.js @@ -10,6 +10,7 @@ makeProgressBar, renderLink, select2Thumbnail, + setupNotesField, thumbnailImage yesNoLabel, */ @@ -221,3 +222,93 @@ function renderLink(text, url, options={}) { return `${text}`; } + + +function setupNotesField(element, url, options={}) { + + var editable = options.editable || false; + + // Read initial notes value from the URL + var initial = null; + + inventreeGet(url, {}, { + async: false, + success: function(response) { + initial = response[options.notes_field || 'notes']; + }, + }); + + var toolbar_icons = [ + 'preview', '|', + ]; + + if (editable) { + // Heading icons + toolbar_icons.push('heading-1', 'heading-2', 'heading-3', '|'); + + // Font style + toolbar_icons.push('bold', 'italic', 'strikethrough', '|'); + + // Text formatting + toolbar_icons.push('unordered-list', 'ordered-list', 'code', 'quote', '|'); + + // Elements + toolbar_icons.push('table', 'link', 'image'); + } + + // Markdown syntax guide + toolbar_icons.push('|', 'guide'); + + const mde = new EasyMDE({ + element: document.getElementById(element), + initialValue: initial, + toolbar: toolbar_icons, + shortcuts: [], + }); + + + // Hide the toolbar + $(`#${element}`).next('.EasyMDEContainer').find('.editor-toolbar').hide(); + + if (!editable) { + // Set readonly + mde.codemirror.setOption('readOnly', true); + + // Hide the "edit" and "save" buttons + $('#edit-notes').hide(); + $('#save-notes').hide(); + + } else { + mde.togglePreview(); + + // Add callback for "edit" button + $('#edit-notes').click(function() { + $('#edit-notes').hide(); + $('#save-notes').show(); + + // Show the toolbar + $(`#${element}`).next('.EasyMDEContainer').find('.editor-toolbar').show(); + + mde.togglePreview(); + }); + + // Add callback for "save" button + $('#save-notes').click(function() { + + var data = {}; + + data[options.notes_field || 'notes'] = mde.value(); + + inventreePut(url, data, { + method: 'PATCH', + success: function(response) { + showMessage('{% trans "Notes updated" %}', {style: 'success'}); + }, + error: function(xhr) { + showApiError(xhr, url); + } + }); + }); + } +} + diff --git a/InvenTree/templates/js/translated/label.js b/InvenTree/templates/js/translated/label.js index c0f4c2f735..d19c403861 100644 --- a/InvenTree/templates/js/translated/label.js +++ b/InvenTree/templates/js/translated/label.js @@ -10,6 +10,7 @@ modalSetTitle, modalSubmit, openModal, + plugins_enabled, showAlertDialog, */ @@ -232,26 +233,28 @@ function selectLabel(labels, items, options={}) { var plugins = []; // Request a list of available label printing plugins from the server - inventreeGet( - `/api/plugin/`, - {}, - { - async: false, - success: function(response) { - response.forEach(function(plugin) { - // Look for active plugins which implement the 'labels' mixin class - if (plugin.active && plugin.mixins && plugin.mixins.labels) { - // This plugin supports label printing - plugins.push(plugin); - } - }); + if (plugins_enabled) { + inventreeGet( + `/api/plugin/`, + {}, + { + async: false, + success: function(response) { + response.forEach(function(plugin) { + // Look for active plugins which implement the 'labels' mixin class + if (plugin.active && plugin.mixins && plugin.mixins.labels) { + // This plugin supports label printing + plugins.push(plugin); + } + }); + } } - } - ); + ); + } var plugin_selection = ''; - if (plugins.length > 0) { + if (plugins_enabled && plugins.length > 0) { plugin_selection =`
        `; @@ -2816,7 +2686,7 @@ function installStockItem(stock_item_id, part_id, options={}) { filters: { part_detail: true, in_stock: true, - serialized: true, + tracked: true, }, adjustFilters: function(filters, opts) { var part = getFormFieldValue('part', {}, opts); diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index 81d43d2c3f..c806afd4b1 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -234,10 +234,19 @@ function getAvailableTableFilters(tableKey) { title: '{% trans "Stock status" %}', description: '{% trans "Stock status" %}', }, + has_batch: { + title: '{% trans "Has batch code" %}', + type: 'bool', + }, batch: { title: '{% trans "Batch" %}', description: '{% trans "Batch code" %}', }, + tracked: { + title: '{% trans "Tracked" %}', + description: '{% trans "Stock item is tracked by either batch code or serial number" %}', + type: 'bool', + }, has_purchase_price: { type: 'bool', title: '{% trans "Has purchase price" %}', @@ -265,7 +274,16 @@ function getAvailableTableFilters(tableKey) { // Filters for the 'stock test' table if (tableKey == 'stocktests') { - return {}; + return { + result: { + type: 'bool', + title: '{% trans "Test Passed" %}', + }, + include_installed: { + type: 'bool', + title: '{% trans "Include Installed Items" %}', + } + }; } // Filters for the 'part test template' table @@ -427,12 +445,16 @@ function getAvailableTableFilters(tableKey) { }, has_stock: { type: 'bool', - title: '{% trans "Stock available" %}', + title: '{% trans "In stock" %}', }, low_stock: { type: 'bool', title: '{% trans "Low stock" %}', }, + unallocated_stock: { + type: 'bool', + title: '{% trans "Available stock" %}', + }, assembly: { type: 'bool', title: '{% trans "Assembly" %}', diff --git a/InvenTree/templates/navbar.html b/InvenTree/templates/navbar.html index 126376a7dc..4660123e0d 100644 --- a/InvenTree/templates/navbar.html +++ b/InvenTree/templates/navbar.html @@ -6,12 +6,15 @@ {% settings_value 'BARCODE_ENABLE' as barcodes %} {% settings_value 'STICKY_HEADER' user=request.user as sticky %} {% navigation_enabled as plugin_nav %} -{% inventree_demo_mode as demo %} + +{% inventree_show_about user as show_about %} +{% inventree_customize 'navbar_message' as navbar_message %} +{% inventree_customize 'hide_admin_link' as hide_admin_link %}