2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-30 18:50:53 +00:00

Merge branch 'master' of https://github.com/inventree/InvenTree into matmair/issue6281

This commit is contained in:
Matthias Mair
2025-01-08 08:03:18 +01:00
209 changed files with 6775 additions and 6583 deletions
.github/workflows
contrib/container
docs
src
backend
InvenTree
InvenTree
build
common
importer
locale
ar
LC_MESSAGES
bg
LC_MESSAGES
cs
LC_MESSAGES
da
LC_MESSAGES
de
LC_MESSAGES
el
LC_MESSAGES
en
LC_MESSAGES
es
LC_MESSAGES
es_MX
LC_MESSAGES
et
LC_MESSAGES
fa
LC_MESSAGES
fi
LC_MESSAGES
fr
LC_MESSAGES
he
LC_MESSAGES
hi
LC_MESSAGES
hu
LC_MESSAGES
id
LC_MESSAGES
it
LC_MESSAGES
ja
LC_MESSAGES
ko
LC_MESSAGES
lt
LC_MESSAGES
lv
LC_MESSAGES
nl
LC_MESSAGES
no
LC_MESSAGES
pl
LC_MESSAGES
pt
LC_MESSAGES
pt_BR
LC_MESSAGES
ro
LC_MESSAGES
ru
LC_MESSAGES
sk
LC_MESSAGES
sl
LC_MESSAGES
sr
LC_MESSAGES
sv
LC_MESSAGES
th
LC_MESSAGES
tr
LC_MESSAGES
uk
LC_MESSAGES
vi
LC_MESSAGES
zh_Hans
LC_MESSAGES
zh_Hant
LC_MESSAGES
machine
order
part
plugin
report
stock
users
web
templatetags
requirements-dev.inrequirements-dev.txtrequirements.inrequirements.txt
frontend
tasks.py

@ -85,6 +85,7 @@ jobs:
id: test-docker
run: |
docker build . --target production --tag inventree-test -f contrib/container/Dockerfile
docker run --rm inventree-test invoke version
docker run --rm inventree-test invoke --version
docker run --rm inventree-test invoke --list
docker run --rm inventree-test gunicorn --version
@ -100,6 +101,7 @@ jobs:
- name: Update Docker Image
run: |
docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke install
docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke version
docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke update
docker compose --project-directory . -f contrib/container/dev-docker-compose.yml run inventree-dev-server invoke dev.setup-dev
docker compose --project-directory . -f contrib/container/dev-docker-compose.yml up -d

@ -71,9 +71,7 @@
reverse_proxy {$INVENTREE_SERVER:"http://inventree-server:8000"} {
# If you are running behind another proxy, you may need to specify 'trusted_proxies'
trusted_proxies {
# enter your trusted proxy IP addresses here
}
# Ref: https://caddyserver.com/docs/json/apps/http/servers/trusted_proxies/
# trusted_proxies ...
}
}

@ -171,4 +171,4 @@ WORKDIR ${INVENTREE_HOME}
ENTRYPOINT ["/bin/ash", "./contrib/container/init.sh"]
# Launch the development server
CMD ["invoke", "server", "-a", "${INVENTREE_WEB_ADDR}:${INVENTREE_WEB_PORT}"]
CMD ["invoke", "dev.server", "-a", "${INVENTREE_WEB_ADDR}:${INVENTREE_WEB_PORT}"]

@ -40,14 +40,17 @@ if [[ -n "$INVENTREE_PY_ENV" ]]; then
if test -d "$INVENTREE_PY_ENV"; then
# venv already exists
echo "Using Python virtual environment: ${INVENTREE_PY_ENV}"
source ${INVENTREE_PY_ENV}/bin/activate
else
# Setup a virtual environment (within the "data/env" directory)
# Setup a virtual environment (within the provided directory)
echo "Running first time setup for python environment"
python3 -m venv ${INVENTREE_PY_ENV} --system-site-packages --upgrade-deps
# Ensure invoke tool is installed locally
source ${INVENTREE_PY_ENV}/bin/activate
python3 -m pip install --ignore-installed --upgrade invoke
fi
# Now activate the venv
source ${INVENTREE_PY_ENV}/bin/activate
fi
cd ${INVENTREE_HOME}

Binary file not shown.

After

(image error) Size: 5.7 KiB

Binary file not shown.

After

(image error) Size: 6.3 KiB

@ -1,77 +0,0 @@
---
title: Credits
---
## Python Packages
InvenTree relies on the following Python libraries:
| Library | License | Description |
| --- | --- | --- |
| [Django](https://pypi.org/project/Django/) | BSD | Python web framework |
| [invoke](https://www.pyinvoke.org/) | BSD | Task execution tool |
| [wheel](https://wheel.readthedocs.io/en/stable/) | MIT | Python packaging |
| [pillow](https://pypi.org/project/Pillow/) | HPND | Image manipulation |
| [djangorestframework](https://pypi.org/project/djangorestframework/) | BSD | REST API |
| [django-cors-headers](https://pypi.org/project/django-cors-headers/) | MIT | CORS headers |
| [django-filter](https://pypi.org/project/django-filter/) | BSD | Advanced filtering for REST API |
| [django-mptt](https://pypi.org/project/django-mptt/) | MIT | Modified preorder tree traversal |
| [django-sql-utils](https://pypi.org/project/django-sql-utils/) | MIT | Advanced SQL subqueries |
| [django-markdownx](https://pypi.org/project/django-markdownx/) | BSD | Markdown editor |
| [django-markdownify](https://pypi.org/project/django-markdownify/) | MIT | Markdown template filters |
| [coreapi](https://pypi.org/project/coreapi/) | BSD | API auto documentation |
| [pygments](https://pypi.org/project/Pygments/) | BSD | Syntax highlighting |
| [tablib](https://pypi.org/project/tablib/) | MIT | Data import/export |
| [django-crispy-forms](https://pypi.org/project/django-crispy-forms/) | MIT | Advanced form rendering |
| [django-import-export](https://pypi.org/project/django-import-export/) | BSD | Data import/export in admin interface |
| [django-cleanup](https://pypi.org/project/django-cleanup/) | MIT | Automated cleanup of django media files |
| [rapidfuzz](https://pypi.org/project/rapidfuzz/) | MIT | Fuzzy string matching |
| [django-stdimage](https://pypi.org/project/django-stdimage/) | MIT | Advanced image fields for django |
| [django-weasyprint](https://pypi.org/project/django-weasyprint/) | Apache 2.0 | PDF generation |
| [django-money](https://pypi.org/project/django-money/) | BSD | Currency support |
| [certifi](https://pypi.org/project/certifi/) | MPL 2.0 | Web certification |
| [django-error-report](https://pypi.org/project/django-error-report/) | BSD | Error / excepttion management |
| [django-test-migrations](https://pypi.org/project/django-test-migrations/) | MIT | Unit testing for database migrations |
| [python-barcode](https://pypi.org/project/python-barcode/) | MIT | Barcode support |
| [qrcode](https://pypi.org/project/qrcode/) | BSD | QR code support |
| [django-q](https://pypi.org/project/django-q/) | MIT | Background task manager |
| [gunicorn](https://pypi.org/project/gunicorn/) | MIT | Web server |
| [flake8](https://pypi.org/project/flake8/) | MIT | style checking |
| [pep8-naming](https://pypi.org/project/pep8-naming/) | Expat | name checking |
| [coverage](https://pypi.org/project/coverage/) | Apache-2.0 | coverage checking |
| [django-formtools](https://pypi.org/project/django-formtools/) | MIT | better forms / wizards |
| [django-allauth](https://pypi.org/project/django-allauth/) | MIT | SSO for django |
| [pint](https://pint.readthedocs.io/en/stable/) | [licence](https://github.com/hgrecco/pint/blob/master/LICENSE) | Physical unit conversion |
## Frontend libraries
InvenTree relies on the following frontend libraries and components:
| Name | License | Description |
| --- | --- | --- |
| [Bootstrap](https://github.com/twbs/bootstrap/) | MIT | Frontend framework |
| [jquery](https://github.com/jquery/jquery) | MIT | JS framework |
| [Bootstrap table](https://github.com/wenzhixin/bootstrap-table/) | MIT | Table rendering |
| [Font Awesome - Icons](https://fontawesome.com/) | CC BY 4.0 License | Icons |
| [Font Awesome - Code](https://fontawesome.com/) | MIT | Delivery code for icons |
| [Select2](https://github.com/select2/select2/) | MIT | Searchable selection box |
| [fullcalendar](https://github.com/fullcalendar/fullcalendar/) | MIT | Calendar rendering |
| [chart.js](https://github.com/chartjs/Chart.js) | MIT | charts |
| [Moment JS](https://github.com/moment/momentjs.com/) | MIT | Time and date rendering |
| [jquery-treegrid](https://github.com/maxazan/jquery-treegrid/) | MIT | Treegrid rendering |
| [clipboard.js](https://github.com/zenorocha/clipboard.js) | MIT | text copying |
| [qr-scanner](https://github.com/nimiq/qr-scanner) | MIT | Javascript QR Code Scanner |
## Assets
### Splash Screen
The InvenTree splash screen graphic is sourced from [unsplash.com](https://unsplash.com/photos/Ixvv3YZkd7w) and used under the [unsplash license](https://unsplash.com/license).
## Source Code Contributions
The InvenTree project relies on the expertise and generosity of its [source code contributors](https://github.com/inventree/InvenTree/graphs/contributors).
## Translation Contributions
Translation efforts are supported by the InvenTree community. We appreciate the efforts of our [translation team](https://crowdin.com/project/inventree).

@ -34,7 +34,9 @@ A "bare metal" development setup can be installed as follows:
```bash
git clone https://github.com/inventree/InvenTree.git && cd InvenTree
python3 -m venv env && source env/bin/activate
pip install django invoke && invoke
pip install --upgrade --ignore-installed invoke
invoke install
invoke update
invoke dev.setup-dev --tests
```
@ -146,10 +148,6 @@ pyupgrade `find . -name "*.py"`
django-upgrade --target-version {{ config.extra.django_version }} `find . -name "*.py"`
```
## Credits
If you add any new dependencies / libraries, they should be added to [the credits page](../credits.md).
## Migration Files
Any required migration files **must** be included in the commit, or the pull-request will be rejected. If you change the underlying database schema, make sure you run `invoke migrate` and commit the migration files before submitting the PR.

@ -111,7 +111,7 @@ Make sure you have `gnupg` and `pinentry-mac` installed and set up correctly. Re
#### Where are the database, media files, ... stored?
Backups, Commandhistory, media/static files, venv, plugin.txt, secret_key.txt, ... are stored in the `dev` folder. If you want to start with a clean setup, you can remove that folder, but be aware that this will delete everything you already setup in InvenTree.
Backups, media/static files, venv, plugin.txt, secret_key.txt, ... are stored in the `dev` folder. If you want to start with a clean setup, you can remove that folder, but be aware that this will delete everything you already setup in InvenTree.
### Performance Improvements

@ -26,7 +26,7 @@ Refer to the [invoke guide](./start/invoke.md#cant-find-any-collection-named-tas
If the installed version of invoke is too old, users may see error messages during the installation procedure. Refer to the [invoke guide](./start/invoke.md#minimum-version) for more information.
### No module named 'django'
### No module named <xxx>
During the install or update process, you may be presented with an error like:
@ -34,9 +34,27 @@ During the install or update process, you may be presented with an error like:
ModuleNotFoundError: No module named 'django'
```
Most likely you are trying to run the InvenTree server from outside the context of the virtual environment where the required python libraries are installed.
Either the named modules are not installed, or the virtual environment is not correctly activated.
Always activate the virtual environment before running server commands!
**Check Virtual Environment**
Ensure that the virtual environment is correctly activated before running any InvenTree commands.
**Check Invoke Tool**
Ensure that the invoke tool is correctly installed inside the virtual environment, with:
```bash
pip install --upgrade --ignore-installed invoke
```
**Install Required Python Packages**
Ensure that all required python packages are installed by running:
```bash
invoke install
```
### 'str' object has no attribute 'removeSuffix'

@ -152,12 +152,13 @@ def on_config(config, *args, **kwargs):
"""
rtd = os.environ.get('READTHEDOCS', False)
# Note: version selection is handled by RTD internally
# Check for 'versions.json' file
# If it does not exist, we need to fetch it from the RTD API
if os.path.exists(os.path.join(os.path.dirname(__file__), 'versions.json')):
print("Found 'versions.json' file")
else:
fetch_rtd_versions()
# if os.path.exists(os.path.join(os.path.dirname(__file__), 'versions.json')):
# print("Found 'versions.json' file")
# else:
# fetch_rtd_versions()
if rtd:
rtd_version = os.environ['READTHEDOCS_VERSION']

@ -6,10 +6,9 @@ title: Barcode Generation
Both [report](./report.md) and [label](./labels.md) templates can render custom barcode data to in-line images.
!!! info "img"
Barcode data must be rendered inside an `<img>` tag.
### Barcode Template Tags
Inside the template file (whether it be for printing a label or generating a custom report), the following code will need to be included at the top of the template file:
To use the barcode tags inside a label or report template, you must load the `barcode` template tags at the top of the template file:
```html
{% raw %}
@ -18,12 +17,30 @@ Inside the template file (whether it be for printing a label or generating a cus
{% endraw %}
```
### 1D Barcode
### Barcode Image Data
The barcode template tags will generate an image tag with the barcode data encoded as a base64 image. The image data is intended to be rendered as an `img` tag:
```html
{% raw %}
{% load barcode %}
<img class='custom_class' src='{% barcode "12345678" %}'>
{% endraw %}
```
## 1D Barcode
!!! info "python-barcode"
One dimensional barcodes (e.g. Code128) are generated using the [python-barcode](https://pypi.org/project/python-barcode/) library.
To render a 1D barcode, use the `barcode` template tag, as shown in the example below:
To render a 1D barcode, use the `barcode` template tag:
::: report.templatetags.barcode.barcode
options:
show_docstring_description: False
show_source: False
### Example
```html
{% raw %}
@ -36,6 +53,8 @@ To render a 1D barcode, use the `barcode` template tag, as shown in the example
{% endraw %}
```
### Additional Options
The default barcode renderer will generate a barcode using [Code128](https://en.wikipedia.org/wiki/Code_128) rendering. However [other barcode formats](https://python-barcode.readthedocs.io/en/stable/supported-formats.html) are also supported:
```html
@ -58,29 +77,102 @@ You can also pass further [python-barcode](https://python-barcode.readthedocs.io
{% endraw %}
```
### QR-Code
## QR-Code
!!! info "qrcode"
Two dimensional QR codes are generated using the [qrcode](https://pypi.org/project/qrcode/) library.
To render a QR code, use the `qrcode` template tag:
```html
{% raw %}
::: report.templatetags.barcode.qrcode
options:
show_docstring_description: false
show_source: False
{% load barcode %}
<img class='custom_qr_class' src='{% qrcode "Hello world!" %}'>
{% endraw %}
```
Additional parameters can be passed to the `qrcode` function for rendering:
### Example
```html
{% raw %}
<img class='custom_qr_class' src='{% qrcode "Hello world!" fill_color="green" back_color="blue" %}'>
{% extends "label/label_base.html" %}
{% load l10n i18n barcode %}
{% block style %}
.qr {
position: absolute;
left: 0mm;
top: 0mm;
{% localize off %}
height: {{ height }}mm;
width: {{ height }}mm;
{% endlocalize %}
}
{% endblock style %}
{% block content %}
<img class='qr' src='{% qrcode "Hello world!" fill_color="white" back_color="blue" %}'>
{% endblock content %}
{% endraw %}
```
which produces the following output:
{% with id="qrcode", url="report/qrcode.png", description="QR Code" %}
{% include 'img.html' %}
{% endwith %}
!!! tip "Documentation"
Refer to the [qrcode library documentation](https://pypi.org/project/qrcode/) for more information
## Data Matrix
!!! info "ppf.datamatrix"
Data Matrix codes are generated using the [ppf.datamatrix](https://pypi.org/project/ppf-datamatrix/) library.
[Data Matrix Codes](https://en.wikipedia.org/wiki/Data_Matrix) provide an alternative to QR codes for encoding data in a two-dimensional matrix. To render a Data Matrix code, use the `datamatrix` template tag:
::: report.templatetags.barcode.datamatrix
options:
show_docstring_description: false
show_source: False
### Example
```html
{% raw %}
{% extends "label/label_base.html" %}
{% load l10n i18n barcode %}
{% block style %}
.qr {
position: absolute;
left: 0mm;
top: 0mm;
{% localize off %}
height: {{ height }}mm;
width: {{ height }}mm;
{% endlocalize %}
}
{% endblock style %}
{% block content %}
<img class='qr' src='{% datamatrix "Foo Bar" back_color="yellow" %}'>
{% endblock content %}
{% endraw %}
```
which produces the following output:
{% with id="datamatrix", url="report/datamatrix.png", description="Datamatrix barcode" %}
{% include 'img.html' %}
{% endwith %}

@ -126,7 +126,7 @@ In the [settings screen](./global.md), navigate to the *Login Settings* panel. H
| Enable SSO | Enable this option to allow single sign on for user login |
| Enable SSO registration | Allow users to self-register with SSO |
| Auto-fill SSO users | Automatically fill out user account data with information provided by external SSO app |
| Allowed domains | Optionally restrict signup to certain domains |
| Allowed domains | Optionally restrict user registration to certain domains |
### Configure Email

@ -19,7 +19,7 @@ To access the admin interface, select the "Admin" option from the drop-down user
!!! info "Staff Only"
Only users with staff access will be able to see the "Admin" option
An adminstation panel will be presented as shown below:
An administration panel will be presented as shown below:
{% with id="admin", url="admin/admin.png", description="InvenTree Admin Panel" %}
{% include 'img.html' %}

@ -41,7 +41,7 @@ Configuration of basic server settings:
### Login Settings
Change how logins, password-forgot, signups are handled:
Change how logins, password-forgot, user registrations are handled:
| Name | Description | Default | Units |
| ---- | ----------- | ------- | ----- |

@ -50,4 +50,4 @@ Some examples below demonstrate how the variable substitution can be implemented
| `{% raw %}PO-{ref}{% endraw %}` | Render the *reference* variable without any custom formatting | PO-123 |
| `{% raw %}PO-{ref:05d}{% endraw %}` | Render the *reference* variable as a 5-digit decimal number | PO-00123 |
| `{% raw %}PO-{ref:05d}-{?:A}{% endraw %}` | *Require* a wildcard suffix with default suggested suffix `"A"`. | PO-00123-A <br> PO-00123-B |
| `{% raw %}PO-{ref:05d}-{date:%Y-%m-%d}{% endraw %}` | Render the *date* variable in isoformat | PO-00123-2023-01-17 |
| `{% raw %}PO-{ref:05d}-{date:%Y-%m-%d}{% endraw %}` | Render the *date* variable in ISO format | PO-00123-2023-01-17 |

@ -93,7 +93,6 @@ The following debugging / logging options are available:
| --- | --- | --- | --- |
| INVENTREE_DEBUG | debug | Enable [debug mode](./intro.md#debug-mode) | False |
| INVENTREE_DEBUG_QUERYCOUNT | debug_querycount | Enable [query count logging](https://github.com/bradmontgomery/django-querycount) in the terminal | False |
| INVENTREE_DEBUG_SHELL | debug_shell | Enable [administrator shell](https://github.com/djk2/django-admin-shell) (only in debug mode) | False |
| INVENTREE_DB_LOGGING | db_logging | Enable logging of database messages | False |
| INVENTREE_LOG_LEVEL | log_level | Set level of logging to terminal | WARNING |
| INVENTREE_JSON_LOG | json_log | log as json | False |
@ -107,10 +106,6 @@ Enabling the `INVENTREE_DEBUG` setting will turn on [Django debug mode]({% inclu
Enabling the `INVENTREE_DEBUG_QUERYCOUNT` setting will log the number of database queries executed for each page load. This can be useful for identifying performance bottlenecks in the InvenTree server. Note that this setting is only available if `INVENTREE_DEBUG` is also enabled.
### Debug Shell
Enabling the `INVENTREE_DEBUG_SHELL` setting will allow the use of the [administrator shell](https://github.com/djk2/django-admin-shell). Note that this setting is only available if `INVENTREE_DEBUG` is also enabled, and is only accessible to superuser accounts.
### Database Logging
Enabling the `INVENTREE_DB_LOGGING` setting will log all database queries to the terminal. This can be useful for debugging database-related issues.
@ -434,16 +429,15 @@ The logo and custom messages can be changed/set:
| INVENTREE_CUSTOM_SPLASH | customize.splash | Path to custom splash screen in the static files directory | *Not specified* |
| INVENTREE_CUSTOMIZE | customize.login_message | Custom message for login page | *Not specified* |
| INVENTREE_CUSTOMIZE | customize.navbar_message | Custom message for navbar | *Not specified* |
| INVENTREE_CUSTOMIZE | customize.hide_pui_banner | Disable PUI banner | False |
The INVENTREE_CUSTOMIZE environment variable must contain a json object with the keys from the table above and
the wanted values. Example:
```
INVENTREE_CUSTOMIZE={"login_message":"Hallo Michi","hide_pui_banner":"True"}
INVENTREE_CUSTOMIZE={"login_message":"Hallo Michi"}
```
This example removes the PUI banner and sets a login message. Take care of the double quotes.
This example sets a login message. Take care of the double quotes.
If you want to remove the InvenTree branding as far as possible from your end-user also check the [global server settings](../settings/global.md#server-settings).

@ -107,7 +107,8 @@ source ./env/bin/activate
The Python packages required by the InvenTree server must be installed into the virtual environment.
```
pip install --require-hashes -U -r src/backend/requirements.txt
pip install --upgrade --ignore-installed invoke
invoke install
```
This installs all required Python packages using pip package manager. It also creates a (default) database configuration file which needs to be edited to meet user needs before proceeding (see next step below).

@ -103,13 +103,13 @@ By default, a public AWS service is used to resolve the public IP address of the
#### Admin User
By default, an admin user is automatically generated with username `admin`, mail `admin@example.com` and a dynamic password that is saved to `/etc/inventree/admin_password`.
These values can be customised with the environment variables `INVENTREE_ADMIN_USER`, `INVENTREE_ADMIN_EMAIL` and `INVENTREE_ADMIN_PASSWORD`.
These values can be customized with the environment variables `INVENTREE_ADMIN_USER`, `INVENTREE_ADMIN_EMAIL` and `INVENTREE_ADMIN_PASSWORD`.
To stop the automatic generation of an admin user, generate an empty file needs to be placed at `/etc/inventree/admin_password`.
#### Webconfig
#### Web Config
By default, InvenTree is served internally on port 6000 and then proxied via Nginx. The config is placed in `/etc/nginx/sites-enabled/inventree.conf` and overwritten on each update. The location can be set with the environment variable `SETUP_NGINX_FILE`.
This only serves an HTTP version of InvenTree, to use HTTPS (recommended for production) or customise any further an additional config file should be used.
This only serves an HTTP version of InvenTree, to use HTTPS (recommended for production) or customize any further an additional config file should be used.
#### Extra python packages
Extra python packages can be installed by setting the environment variable `SETUP_EXTRA_PIP`.

@ -82,6 +82,24 @@ Or, if that does not work, try:
This will place the current shell session inside a virtual environment - the terminal should display the ``(env)`` prefix.
### Invoke in Virtual Environment
If you are using a virtual environment (and you should be!) you will need to ensure that you have installed the `invoke` package inside the virtual environment! If the invoke commands are run from outside the virtual environment, they may not work correctly - and may be extremely difficult to debug!
To install the `invoke` package inside the virtual environment, run the following command (after activating the virtual environment):
```
pip install --upgrade --ignore-installed invoke
```
To check that the `invoke` package is correctly installed, run the following command:
```
which invoke
```
This should return the path to the `invoke` binary inside the virtual environment. If the path is *not* inside the virtual environment, the `invoke` package is not correctly installed!
## InvenTree Source Code
InvenTree source code is distributed on [GitHub](https://github.com/inventree/inventree/), and the latest version can be downloaded (using Git) with the following command:
@ -106,7 +124,7 @@ So, for a production setup, you should set `INVENTREE_DEBUG=false` in the [confi
### Potential Issues
Turning off DEBUG mode creates further work for the system administrator. In particular, when running in DEBUG mode, the InvenTree web server natively manages *static* and *media* files, which means that the InvenTree server can run "monolithically" without the need for a separate web server.
Turning off DEBUG mode creates further work for the system administrator. In particular, when running in DEBUG mode, the InvenTree web server natively manages *static* and *media* files, which means that when DEBUG mode is *disabled*, the InvenTree server can no longer run as a monolithic process.
!!! info "Read More"
Refer to the [proxy server documentation](./processes.md#proxy-server) for more details

@ -48,7 +48,7 @@ This step ensures that the required database tables exist, and are at the correc
### Import Data
The new database should now be correctly initialized with the correct table structures required to import the data. Run the following command to load the databased dump file into the new database.
The new database should now be correctly initialized with the correct table structures required to import the data. Run the following command to load the database dump file into the new database.
!!! warning "Empty Database"
If the database is not *empty* (i.e. it contains data records) then the data import process will fail. If errors occur during the import process, run `invoke import-records` with the `-c` option to clear all existing data from the database.

@ -24,7 +24,7 @@ Multiple stock items may share the same batch code without restriction, even acr
#### Generating Batch Codes
Batch codes can be generated automatically based on a provided pattern. The default pattern simply uses the current datecode as the batch number, however this can be customized within a certain scope.
Batch codes can be generated automatically based on a provided pattern. The default pattern simply uses the current date-code as the batch number, however this can be customized within a certain scope.
{% with id="batch_code_pattern", url="stock/batch_code_template.png", description="Batch code pattern" %}
{% include 'img.html' %}
@ -150,4 +150,4 @@ Custom serial number functionality, with any arbitrary requirements or level of
A custom plugin allows the user to determine how a "valid" serial number is defined, and (crucially) how any given serial number value is incremented to provide the next value in the sequence.
Implementing custom methods for these two consideraions allows for complex serial number schema to be supported with minimal effort.
Implementing custom methods for these two considerations allows for complex serial number schema to be supported with minimal effort.

@ -82,7 +82,6 @@ nav:
- Contributing: develop/contributing.md
- Devcontainer: develop/devcontainer.md
- React Frontend: develop/react-frontend.md
- Credits: credits.md
- Privacy: privacy.md
- Release Notes: releases/release_notes.md
- Security: security.md

@ -1,7 +1,6 @@
"""Main JSON interface views."""
import json
import logging
import sys
from pathlib import Path
@ -10,6 +9,7 @@ from django.db import transaction
from django.http import JsonResponse
from django.utils.translation import gettext_lazy as _
import structlog
from django_q.models import OrmQ
from drf_spectacular.utils import OpenApiResponse, extend_schema
from rest_framework import permissions, serializers
@ -31,7 +31,7 @@ from .mixins import ListAPI, RetrieveUpdateAPI
from .status import check_system_health, is_worker_running
from .version import inventreeApiText
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class LicenseViewSerializer(serializers.Serializer):

@ -1,7 +1,7 @@
"""InvenTree API version information."""
# InvenTree API version
INVENTREE_API_VERSION = 297
INVENTREE_API_VERSION = 298
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
@ -11,6 +11,11 @@ v296 - 2024-12-22 : https://github.com/inventree/InvenTree/pull/6293
- Removes a considerable amount of old auth endpoints
- Introduces allauth based REST API
v298 - 2025-01-07 - https://github.com/inventree/InvenTree/pull/8848
- Adds 'created_by' field to PurchaseOrder API endpoints
- Adds 'created_by' field to SalesOrder API endpoints
- Adds 'created_by' field to ReturnOrder API endpoints
v297 - 2024-12-29 - https://github.com/inventree/InvenTree/pull/8438
- Adjustments to the CustomUserState API endpoints and serializers

@ -1,6 +1,5 @@
"""AppConfig for InvenTree app."""
import logging
from importlib import import_module
from pathlib import Path
@ -11,6 +10,7 @@ from django.core.exceptions import AppRegistryNotReady
from django.db import transaction
from django.db.utils import IntegrityError, OperationalError
import structlog
from allauth.socialaccount.signals import social_account_updated
import InvenTree.conversion
@ -19,7 +19,7 @@ import InvenTree.tasks
from common.settings import get_global_setting, set_global_setting
from InvenTree.config import get_setting
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class InvenTreeConfig(AppConfig):

@ -1,7 +1,5 @@
"""Overrides for allauth and adjacent packages to enforce InvenTree specific auth settings and restirctions."""
import logging
from django import forms
from django.conf import settings
from django.contrib.auth.models import Group
@ -9,6 +7,7 @@ from django.http import HttpResponseRedirect
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
import structlog
from allauth.account.adapter import DefaultAccountAdapter
from allauth.account.forms import LoginForm, SignupForm, set_form_field_order
from allauth.headless.tokens.sessions import SessionTokenStrategy
@ -20,7 +19,7 @@ from common.settings import get_global_setting
from InvenTree.exceptions import log_error
from users.models import ApiToken
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
# override allauth

@ -1,16 +1,16 @@
"""Custom backend implementations."""
import datetime
import logging
import time
from django.db.utils import IntegrityError, OperationalError, ProgrammingError
import structlog
from maintenance_mode.backends import AbstractStateBackend
import common.models
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class InvenTreeMaintenanceModeBackend(AbstractStateBackend):

@ -1,12 +1,13 @@
"""Configuration options for InvenTree external cache."""
import logging
import socket
import structlog
import InvenTree.config
import InvenTree.ready
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def cache_setting(name, default=None, **kwargs):

@ -1,6 +1,5 @@
"""Helper functions for converting between units."""
import logging
import re
from typing import Optional
@ -11,7 +10,9 @@ import pint
_unit_registry = None
logger = logging.getLogger('inventree')
import structlog
logger = structlog.get_logger('inventree')
def get_unit_registry():

@ -2,7 +2,6 @@
# -*- coding: utf-8 -*-
import logging
import sys
import traceback
@ -11,11 +10,12 @@ from django.core.exceptions import ValidationError as DjangoValidationError
from django.utils.translation import gettext_lazy as _
import rest_framework.views as drfviews
import structlog
from rest_framework import serializers
from rest_framework.exceptions import ValidationError as DRFValidationError
from rest_framework.response import Response
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def log_error(path, error_name=None, error_info=None, error_data=None):

@ -1,16 +1,15 @@
"""Custom exchange backend which hooks into the InvenTree plugin system to fetch exchange rates from an external API."""
import logging
from django.db.transaction import atomic
import structlog
from djmoney.contrib.exchange.backends.base import SimpleExchangeBackend
from djmoney.contrib.exchange.models import ExchangeBackend, Rate
from common.currency import currency_code_default, currency_codes
from common.settings import get_global_setting
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class InvenTreeExchange(SimpleExchangeBackend):

@ -4,7 +4,6 @@ import datetime
import hashlib
import inspect
import io
import logging
import os
import os.path
import re
@ -22,6 +21,7 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _
import bleach
import structlog
from bleach import clean
from djmoney.money import Money
from PIL import Image
@ -31,7 +31,7 @@ from common.currency import currency_code_default
from .settings import MEDIA_URL, STATIC_URL
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def extract_int(reference, clip=0x7FFFFFFF, allow_negative=False):

@ -1,14 +1,14 @@
"""Code for managing email functionality in InvenTree."""
import logging
from django.conf import settings
from django.core import mail as django_mail
import structlog
import InvenTree.ready
import InvenTree.tasks
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def is_email_configured():

@ -1,7 +1,6 @@
"""Provides helper functions used throughout the InvenTree project that access the database."""
import io
import logging
from decimal import Decimal
from typing import Optional
from urllib.parse import urljoin
@ -12,6 +11,7 @@ from django.db.utils import OperationalError, ProgrammingError
from django.utils.translation import gettext_lazy as _
import requests
import structlog
from djmoney.contrib.exchange.models import convert_money
from djmoney.money import Money
from PIL import Image
@ -24,7 +24,7 @@ from common.notifications import (
from common.settings import get_global_setting
from InvenTree.format import format_money
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def get_base_url(request=None):

@ -1,12 +1,12 @@
"""Check if there are any pending database migrations, and run them."""
import logging
from django.core.management.base import BaseCommand
import structlog
from InvenTree.tasks import check_for_migrations
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class Command(BaseCommand):

@ -1,10 +1,10 @@
"""Custom management command to cleanup old settings that are not defined anymore."""
import logging
from django.core.management.base import BaseCommand
logger = logging.getLogger('inventree')
import structlog
logger = structlog.get_logger('inventree')
class Command(BaseCommand):

@ -3,13 +3,12 @@
- This is crucial after importing any fixtures, etc
"""
import logging
from django.core.management.base import BaseCommand
import structlog
from maintenance_mode.core import maintenance_mode_on, set_maintenance_mode
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class Command(BaseCommand):

@ -3,18 +3,18 @@
- May be required after importing a new dataset, for example
"""
import logging
import os
from django.core.management.base import BaseCommand
from django.db.utils import OperationalError, ProgrammingError
import structlog
from PIL import UnidentifiedImageError
from company.models import Company
from part.models import Part
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class Command(BaseCommand):

@ -1,12 +1,12 @@
"""Check if there are any pending database migrations, and run them."""
import logging
from django.core.management.base import BaseCommand
import structlog
from InvenTree.tasks import check_for_migrations
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class Command(BaseCommand):

@ -1,10 +1,9 @@
"""Custom metadata for DRF."""
import logging
from django.core.exceptions import PermissionDenied
from django.http import Http404
import structlog
from rest_framework import exceptions, serializers
from rest_framework.fields import empty
from rest_framework.metadata import SimpleMetadata
@ -17,7 +16,7 @@ import users.models
from InvenTree.helpers import str2bool
from InvenTree.serializers import DependentField
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class InvenTreeMetadata(SimpleMetadata):
@ -389,7 +388,9 @@ class InvenTreeMetadata(SimpleMetadata):
model = field.queryset.model
else:
logger.debug(
'Could not extract model for:', field_info.get('label'), '->', field
'Could not extract model for: %s -> %s',
field_info.get('label'),
field,
)
model = None

@ -1,6 +1,5 @@
"""Middleware for InvenTree."""
import logging
import sys
from django.conf import settings
@ -9,11 +8,12 @@ from django.http import HttpResponse
from django.shortcuts import redirect
from django.urls import resolve, reverse_lazy
import structlog
from error_report.middleware import ExceptionProcessor
from users.models import ApiToken
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def get_token_from_request(request):

@ -1,6 +1,5 @@
"""Generic models which provide extra functionality over base Django model types."""
import logging
from datetime import datetime
from string import Formatter
@ -14,6 +13,7 @@ from django.urls import reverse
from django.urls.exceptions import NoReverseMatch
from django.utils.translation import gettext_lazy as _
import structlog
from django_q.models import Task
from error_report.models import Error
from mptt.exceptions import InvalidMove
@ -25,7 +25,7 @@ import InvenTree.format
import InvenTree.helpers
import InvenTree.helpers_model
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class DiffMixin:
@ -1124,15 +1124,16 @@ def after_failed_task(sender, instance: Task, created: bool, **kwargs):
except (ValueError, NoReverseMatch):
url = ''
# Function name
f = instance.func
notify_staff_users_of_error(
instance,
'inventree.task_failure',
{
'failure': instance,
'name': _('Task Failure'),
'message': _(
f"Background worker task '{instance.func}' failed after {n} attempts"
),
'message': _(f"Background worker task '{f}' failed after {n} attempts"),
'link': url,
},
)

@ -1,19 +1,18 @@
"""Configuration for Sentry.io error reporting."""
import logging
from django.conf import settings
from django.core.exceptions import ValidationError
from django.http import Http404
import rest_framework.exceptions
import sentry_sdk
import structlog
from djmoney.contrib.exchange.exceptions import MissingRate
from sentry_sdk.integrations.django import DjangoIntegration
import InvenTree.version
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def default_sentry_dsn():

@ -220,11 +220,9 @@ if DEBUG and 'collectstatic' not in sys.argv:
# Append directory for sample plugin static content (if in debug mode)
if PLUGINS_ENABLED:
print('Adding plugin sample static content')
logger.info('Adding plugin sample static content')
STATICFILES_DIRS.append(BASE_DIR.joinpath('plugin', 'samples', 'static'))
print('-', STATICFILES_DIRS[-1])
# Database backup options
# Ref: https://django-dbbackup.readthedocs.io/en/master/configuration.html
DBBACKUP_SEND_EMAIL = False
@ -353,29 +351,6 @@ QUERYCOUNT = {
'RESPONSE_HEADER': 'X-Django-Query-Count',
}
ADMIN_SHELL_ENABLE = False
ADMIN_SHELL_IMPORT_DJANGO = False
ADMIN_SHELL_IMPORT_MODELS = False
# In DEBUG mode, add support for django-admin-shell
# Ref: https://github.com/djk2/django-admin-shell
if (
DEBUG
and INVENTREE_ADMIN_ENABLED
and not TESTING
and get_boolean_setting('INVENTREE_DEBUG_SHELL', 'debug_shell', False)
):
try:
import django_admin_shell # noqa: F401
INSTALLED_APPS.append('django_admin_shell')
ADMIN_SHELL_ENABLE = True
logger.warning('Admin shell is enabled')
except ModuleNotFoundError:
logger.warning(
'django-admin-shell is not installed - Admin shell is not enabled'
)
AUTHENTICATION_BACKENDS = CONFIG.get(
'authentication_backends',
@ -1029,7 +1004,9 @@ if SITE_URL:
validator = URLValidator()
validator(SITE_URL)
except Exception:
print(f"Invalid SITE_URL value: '{SITE_URL}'. InvenTree server cannot start.")
msg = f"Invalid SITE_URL value: '{SITE_URL}'. InvenTree server cannot start."
logger.error(msg)
print(msg)
sys.exit(-1)
else:
@ -1128,12 +1105,7 @@ COOKIE_MODE = (
# Valid modes (as per the django settings documentation)
valid_cookie_modes = ['lax', 'strict', 'none']
if not DEBUG and not TESTING and COOKIE_MODE in valid_cookie_modes:
# Set the cookie mode (in production mode only)
COOKIE_MODE = COOKIE_MODE.capitalize()
else:
# Default to False, as per the Django settings
COOKIE_MODE = False
COOKIE_MODE = COOKIE_MODE.capitalize() if COOKIE_MODE in valid_cookie_modes else False
# Additional CSRF settings
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
@ -1141,13 +1113,14 @@ CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_SAMESITE = COOKIE_MODE
SESSION_COOKIE_SAMESITE = COOKIE_MODE
LANGUAGE_COOKIE_SAMESITE = COOKIE_MODE
"""Set the SESSION_COOKIE_SECURE value based on the following rules:
- False if the server is running in DEBUG mode
- True if samesite cookie setting is set to 'None'
- Otherwise, use the value specified in the configuration file (or env var)
"""
SESSION_COOKIE_SECURE = (
COOKIE_SECURE = (
False
if DEBUG
else (
@ -1158,6 +1131,10 @@ SESSION_COOKIE_SECURE = (
)
)
CSRF_COOKIE_SECURE = COOKIE_SECURE
SESSION_COOKIE_SECURE = COOKIE_SECURE
LANGUAGE_COOKIE_SECURE = COOKIE_SECURE
# Ref: https://docs.djangoproject.com/en/4.2/ref/settings/#std-setting-SECURE_PROXY_SSL_HEADER
if ssl_header := get_boolean_setting(
'INVENTREE_USE_X_FORWARDED_PROTO', 'use_x_forwarded_proto', False

@ -1,18 +1,18 @@
"""Helper functions for Single Sign On functionality."""
import json
import logging
from django.contrib.auth.models import Group
from django.db.models.signals import post_save
from django.dispatch import receiver
import structlog
from allauth.socialaccount.models import SocialAccount, SocialLogin
from common.settings import get_global_setting
from InvenTree.helpers import str2bool
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def get_provider_app(provider):

@ -1,17 +1,17 @@
"""Provides system status functionality checks."""
import logging
from datetime import timedelta
from django.utils import timezone
import structlog
from django_q.models import Success
from django_q.status import Stat
import InvenTree.helpers_email
import InvenTree.ready
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def is_worker_running(**kwargs):

@ -1,7 +1,6 @@
"""Functions for tasks and a few general async tasks."""
import json
import logging
import os
import random
import re
@ -21,6 +20,7 @@ from django.db.utils import NotSupportedError, OperationalError, ProgrammingErro
from django.utils import timezone
import requests
import structlog
from maintenance_mode.core import (
get_maintenance_mode,
maintenance_mode_on,
@ -33,7 +33,7 @@ from plugin import registry
from .version import isInvenTreeUpToDate
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def schedule_task(taskname, **kwargs):

@ -1,6 +1,5 @@
"""This module provides template tags for extra functionality, over and above the built-in Django tags."""
import logging
from datetime import date, datetime
from django import template
@ -22,7 +21,9 @@ from plugin.plugin import InvenTreePlugin
register = template.Library()
logger = logging.getLogger('inventree')
import structlog
logger = structlog.get_logger('inventree')
@register.simple_tag()

@ -1357,14 +1357,17 @@ class TestOffloadTask(InvenTreeTestCase):
# First call should run without issue
result = InvenTree.tasks.check_daily_holdoff('dummy_task')
self.assertTrue(result)
self.assertIn("Logging task attempt for 'dummy_task'", str(cm.output))
self.assertIn(
'Logging task attempt for dummy_task', str(cm.output).replace("\\'", '')
)
with self.assertLogs(logger='inventree', level='INFO') as cm:
# An attempt has been logged, but it is too recent
result = InvenTree.tasks.check_daily_holdoff('dummy_task')
self.assertFalse(result)
self.assertIn(
"Last attempt for 'dummy_task' was too recent", str(cm.output)
'Last attempt for dummy_task was too recent',
str(cm.output).replace("\\'", ''),
)
# Mark last attempt a few days ago - should now return True
@ -1385,7 +1388,8 @@ class TestOffloadTask(InvenTreeTestCase):
result = InvenTree.tasks.check_daily_holdoff('dummy_task')
self.assertFalse(result)
self.assertIn(
"Last attempt for 'dummy_task' was too recent", str(cm.output)
'Last attempt for dummy_task was too recent',
str(cm.output).replace("\\'", ''),
)
# Configure so a task was successful too recently

@ -148,9 +148,6 @@ urlpatterns = []
if settings.INVENTREE_ADMIN_ENABLED:
admin_url = settings.INVENTREE_ADMIN_URL
if settings.ADMIN_SHELL_ENABLE:
urlpatterns += [path(f'{admin_url}/shell/', include('django_admin_shell.urls'))]
urlpatterns += [
path(f'{admin_url}/error_log/', include('error_report.urls')),
path(f'{admin_url}/', admin.site.urls, name='inventree-admin'),

@ -1,7 +1,6 @@
"""Build database model definitions."""
import decimal
import logging
from datetime import datetime
from django.contrib.auth.models import User
@ -15,6 +14,7 @@ from django.dispatch.dispatcher import receiver
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
import structlog
from mptt.exceptions import InvalidMove
from mptt.models import MPTTModel, TreeForeignKey
from rest_framework import serializers
@ -47,7 +47,7 @@ from generic.states import StateTransitionMixin, StatusCodeMixin
from plugin.events import trigger_event
from stock.status_codes import StockHistoryCode, StockStatus
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class Build(

@ -1,6 +1,5 @@
"""Background task definitions for the BuildOrder app."""
import logging
import random
import time
from datetime import timedelta
@ -11,6 +10,7 @@ from django.db import transaction
from django.template.loader import render_to_string
from django.utils.translation import gettext_lazy as _
import structlog
from allauth.account.models import EmailAddress
import build.models as build_models
@ -25,7 +25,7 @@ from build.status_codes import BuildStatusGroups
from InvenTree.ready import isImportingData
from plugin.events import trigger_event
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def auto_allocate_build(build_id: int, **kwargs):

@ -1,6 +1,5 @@
"""Unit tests for the 'build' models."""
import logging
import uuid
from datetime import datetime, timedelta
@ -11,6 +10,8 @@ from django.db.models import Sum
from django.test import TestCase
from django.test.utils import override_settings
import structlog
import build.tasks
import common.models
from build.models import Build, BuildItem, BuildLine, generate_next_build_reference
@ -22,7 +23,7 @@ from part.models import BomItem, BomItemSubstitute, Part, PartTestTemplate
from stock.models import StockItem, StockItemTestResult
from users.models import Owner
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class BuildTestBase(TestCase):

@ -1,13 +1,13 @@
"""App config for common app."""
import logging
from django.apps import AppConfig
import structlog
import InvenTree.ready
from common.settings import get_global_setting, set_global_setting
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class CommonConfig(AppConfig):

@ -1,7 +1,6 @@
"""Helper functions for currency support."""
import decimal
import logging
import math
from typing import Optional
@ -9,11 +8,12 @@ from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
import structlog
from moneyed import CURRENCIES
import InvenTree.helpers
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def currency_code_default():

@ -1,7 +1,6 @@
"""Icon utilities for InvenTree."""
import json
import logging
from dataclasses import dataclass
from pathlib import Path
from typing import TypedDict
@ -9,7 +8,9 @@ from typing import TypedDict
from django.core.exceptions import ValidationError
from django.templatetags.static import static
logger = logging.getLogger('inventree')
import structlog
logger = structlog.get_logger('inventree')
_icon_packs = None

@ -7,7 +7,6 @@ import base64
import hashlib
import hmac
import json
import logging
import os
import uuid
from datetime import timedelta, timezone
@ -34,6 +33,7 @@ from django.urls import reverse
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
import structlog
from djmoney.contrib.exchange.exceptions import MissingRate
from djmoney.contrib.exchange.models import convert_money
from rest_framework.exceptions import PermissionDenied
@ -54,7 +54,7 @@ from generic.states import ColorEnum
from generic.states.custom import state_color_mappings
from InvenTree.sanitizer import sanitize_svg
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class MetaMixin(models.Model):

@ -1,6 +1,5 @@
"""Base classes and functions for notifications."""
import logging
from dataclasses import dataclass
from datetime import timedelta
from typing import Optional
@ -9,6 +8,8 @@ from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.utils.translation import gettext_lazy as _
import structlog
import common.models
import InvenTree.helpers
from InvenTree.ready import isImportingData, isRebuildingData
@ -16,7 +17,7 @@ from plugin import registry
from plugin.models import NotificationUserSetting, PluginConfig
from users.models import Owner
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
# region methods

@ -1,6 +1,5 @@
"""Tasks (processes that get offloaded) for common app."""
import logging
import os
from datetime import timedelta
@ -11,13 +10,14 @@ from django.utils import timezone
import feedparser
import requests
import structlog
import InvenTree.helpers
from InvenTree.helpers_model import getModelsWithMixin
from InvenTree.models import InvenTreeNotesMixin
from InvenTree.tasks import ScheduledTask, scheduled_task
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
@scheduled_task(ScheduledTask.DAILY)

@ -1,7 +1,6 @@
"""Model definitions for the 'importer' app."""
import json
import logging
from typing import Optional
from django.contrib.auth.models import User
@ -11,6 +10,7 @@ from django.db import models
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
import structlog
from rest_framework.exceptions import ValidationError as DRFValidationError
import importer.operations
@ -20,7 +20,7 @@ import importer.validators
import InvenTree.helpers
from importer.status_codes import DataImportStatusCode
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class DataImportSession(models.Model):

@ -1,12 +1,11 @@
"""Registry for supported serializers for data import operations."""
import logging
import structlog
from rest_framework.serializers import Serializer
from importer.mixins import DataImportSerializerMixin
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
class DataImportSerializerRegister:

@ -1,12 +1,13 @@
"""Task definitions for the 'importer' app."""
import logging
from datetime import timedelta
import structlog
import InvenTree.helpers
import InvenTree.tasks
logger = logging.getLogger('inventree')
logger = structlog.get_logger('inventree')
def import_data(session_id: int):

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Language: ar_SA\n"
@ -69,21 +69,21 @@ msgstr "لم تتم الموافقة على نطاق البريد الإلكتر
msgid "Registration is disabled."
msgstr "التسجيل معطل."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "الوحدة المقدمة غير صالحة ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "لم يتم تقديم قيمة"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "تعذّر تحويل {original} إلى {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "الكمية المقدمة غير صحيحة"
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Language: bg_BG\n"
@ -69,21 +69,21 @@ msgstr "Въведеният домейн на електронната поща
msgid "Registration is disabled."
msgstr "Регистрацията е деактивирана."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Не е зададена стойност"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Преобразуването на {original} в {unit} не беше успешно"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Въведена е недопустима стойност"
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@ -69,21 +69,21 @@ msgstr "Zadaná e-mailová doména není povolena."
msgid "Registration is disabled."
msgstr "Registrace vypnuta."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Zadaná neplatná jednotka ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Není k dispozici žádná hodnota"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Nelze převést {original} na {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Vyplněno neplatné množství"
@ -612,7 +612,7 @@ msgstr "Stahování obrázků ze vzdálené URL není povoleno"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Neznámá databáze"
@ -2060,37 +2060,37 @@ msgstr "Výsledek"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nový {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Byla vytvořena nová objednávka a přiřazena k vám"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} zrušeno"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Objednávka, která je vám přidělena, byla zrušena"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr "Množství musí být 1 pro serializovanou skladovou položku"
msgid "Sales order does not match shipment"
msgstr "Prodejní objednávka neodpovídá zásilce"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Zásilka neodpovídá prodejní objednávce"
@ -4955,20 +4955,20 @@ msgstr "Vrácení peněz"
msgid "Reject"
msgstr "Odmítnout"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Opožděná prodejní objednávka"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Prodejní objednávka {so} je nyní opožděná"
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "Činnost nebyla specifikována"
msgid "No matching action found"
msgstr "Nebyla nalezena odpovídající činnost"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Pro data čárového kódu nebyla nalezena shoda"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Pro data čárového kódu byla nalezena shoda"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Čárový kód neodpovídá žádné existující skladové položce"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Skladová položka se neshoduje s řádkovou položkou"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Skladová položka byla přidělena prodejní objednávce"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@ -69,21 +69,21 @@ msgstr "Det angivne e-mail domæne er ikke godkendt."
msgid "Registration is disabled."
msgstr "Registrering er deaktiveret."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Ingen værdi angivet"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Kunne ikke konvertere {original} til {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Ugyldigt antal angivet"
@ -612,7 +612,7 @@ msgstr "Download af billeder fra ekstern URL er ikke aktiveret"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Ukendt database"
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr "Refusion"
msgid "Reject"
msgstr "Afvis"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@ -69,21 +69,21 @@ msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben."
msgid "Registration is disabled."
msgstr "Registrierung ist deaktiviert."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Ungültige Einheit angegeben ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Kein Wert angegeben"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Konnte {original} nicht in {unit} umwandeln"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@ -612,7 +612,7 @@ msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
@ -2060,37 +2060,37 @@ msgstr "Ergebnis"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Neue {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Eine neue Bestellung wurde erstellt und Ihnen zugewiesen"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} storniert"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Artikel erhalten"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Artikel wurden aus einer Bestellung erhalten"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Artikel wurden aus einer Rücksendung erhalten"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Fehler in Plugin aufgetreten"
@ -4592,7 +4592,7 @@ msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
@ -4955,20 +4955,20 @@ msgstr "Rückerstattung"
msgid "Reject"
msgstr "Ablehnen"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Überfällige Bestellung"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Bestellung {po} ist jetzt überfällig"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Überfälliger Auftrag"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Auftrag {so} ist jetzt überfällig"
@ -6295,11 +6295,11 @@ msgstr "Inventurbericht verfügbar"
msgid "A new stocktake report is available for download"
msgstr "Ein neuer Inventurbericht steht zum Download zur Verfügung"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Benachrichtigungen über geringen Bestand"
#: part/tasks.py:39
#: part/tasks.py:40
#, 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"
@ -6316,83 +6316,83 @@ msgstr "Keine Aktion angegeben"
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Barcode entspricht einem bereits vorhandenen Artikel"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr "Keine passenden Teiledaten gefunden"
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr "Keine passenden Zulieferteile gefunden"
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr "Mehrere passende Zulieferteile gefunden"
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr "Zulieferteil zugeordnet"
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr "Artikel wurde bereits erhalten"
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr "Mehrere passende Elemente gefunden"
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr "Kein passendes Element gefunden"
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Lagerartikel stimmt nicht mit dem Element überein"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Unzureichender Bestand verfügbar"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Lagerartikel der Bestellung zugeordnet"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr "Nicht genügend Informationen"
@ -6760,52 +6760,52 @@ msgstr "Unterstützt das Scannen von TME-Barcodes"
msgid "The Supplier which acts as 'TME'"
msgstr "Der Lieferant, der als 'TME' fungiert"
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr "Nur Mitarbeiter können Plugins verwalten"
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr "Plugin-Installation ist deaktiviert"
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr "Plugin wurde erfolgreich installiert"
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin installiert in {path}"
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr "Plugin wurde nicht in der Registry gefunden"
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr "Plugin ist kein gepacktes Plugin"
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr "Plugin-Paketname nicht gefunden"
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr "Plugin-Deinstallation ist deaktiviert"
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin kann nicht deinstalliert werden, da es momentan aktiv ist"
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr "Plugin erfolgreich deinstallieren"
@ -6861,21 +6861,21 @@ msgstr "Plugin"
msgid "Method"
msgstr "Methode"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Kein Autor gefunden"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Plugin '{p}' ist nicht kompatibel mit der aktuellen InvenTree Version {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Plugin benötigt mindestens Version {v}"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Plugin benötigt maximal Version {v}"

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@ -69,21 +69,21 @@ msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυ
msgid "Registration is disabled."
msgstr "Η εγγραφή είναι απενεργοποιημένη."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Η μονάδα μέτρησης δεν είναι έγκυρη ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Δεν εισήχθη τιμή"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Δεν ήταν δυνατή η μετατροπή από {original} σε {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Μη έγκυρη ποσότητα"
@ -612,7 +612,7 @@ msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Άγνωστη βάση δεδομένων"
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr "Επιστροφή χρημάτων"
msgid "Reject"
msgstr "Απόρριψη"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-31 12:14+0000\n"
"POT-Creation-Date: 2025-01-05 03:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -70,21 +70,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -613,7 +613,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2061,37 +2061,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4593,7 +4593,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4956,20 +4956,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6296,11 +6296,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6317,83 +6317,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6761,52 +6761,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6862,21 +6862,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@ -69,21 +69,21 @@ msgstr "El dominio de correo electrónico proporcionado no está aprobado."
msgid "Registration is disabled."
msgstr "Registro deshabilitado."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Unidad proporcionada no válida ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Ningún valor proporcionado"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "No se pudo convertir {original} a {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@ -612,7 +612,7 @@ msgstr "La descarga de imágenes desde la URL remota no está habilitada"
msgid "Failed to download image from remote URL"
msgstr "Error al descargar la imagen desde la URL remota"
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Base de datos desconocida"
@ -2060,37 +2060,37 @@ msgstr "Resultado"
msgid "Was the barcode scan successful?"
msgstr "¿El escaneo de código de barras fue exitoso?"
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nuevo {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Se ha creado un nuevo pedido y se le ha asignado"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} cancelado"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Artículos Recibidos"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Los artículos han sido recibidos contra una orden de compra"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Los artículos han sido recibidos contra una orden de devolución"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Error generado por el complemento"
@ -4592,7 +4592,7 @@ msgstr "La cantidad debe ser 1 para el stock serializado"
msgid "Sales order does not match shipment"
msgstr "La orden de venta no coincide con el envío"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "El envío no coincide con el pedido de venta"
@ -4955,20 +4955,20 @@ msgstr "Reembolso"
msgid "Reject"
msgstr "Rechazo"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Orden de compra atrasada"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "La orden de compra {po} está atrasada"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Orden de venta atrasada"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "La orden de venta {so} está atrasada"
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Notificación por bajo stock"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "El stock disponible para {part.name} ha caído por debajo del nivel mínimo configurado"
@ -6316,83 +6316,83 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "El código de barras coincide con artículo existente"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr "No se ha encontrado ningún complemento para datos de código de barras"
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr "Ningún pedido de venta proporcionado"
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr "El complemento no está instalado"
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr "Instalación del complemento no encontrada"
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Complemento"
msgid "Method"
msgstr "Método"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "No se encontró autor"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "El complemento requiere al menos la versión {v}"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "El complemento requiere como máximo la versión {v}"

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@ -69,21 +69,21 @@ msgstr "El dominio de correo electrónico proporcionado no está aprobado."
msgid "Registration is disabled."
msgstr "Registro deshabilitado."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Unidad proporcionada no válida ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Ningún valor proporcionado"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "No se pudo convertir {original} a {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@ -612,7 +612,7 @@ msgstr "La descarga de imágenes desde la URL remota no está habilitada"
msgid "Failed to download image from remote URL"
msgstr "Error al descargar la imagen desde la URL remota"
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Base de datos desconocida"
@ -647,11 +647,11 @@ msgstr "Construcción o Armado Superior"
#: build/api.py:67 build/api.py:694 order/api.py:432 order/api.py:649
#: order/api.py:1047 order/api.py:1267 stock/api.py:491
msgid "Include Variants"
msgstr ""
msgstr "Incluye Variantes"
#: build/api.py:99
msgid "Ancestor Build"
msgstr ""
msgstr "Construir antepasado"
#: build/api.py:119 order/api.py:100
msgid "Assigned to me"
@ -1734,7 +1734,7 @@ msgstr "Archivo de imagen"
#: common/models.py:1640 common/models.py:1841
msgid "Target model type for this image"
msgstr ""
msgstr "Tipo de modelo destino para esta imagen"
#: common/models.py:1644
msgid "Target model ID for this image"
@ -1815,7 +1815,7 @@ msgstr "Tamaño del archivo en bytes"
#: common/models.py:1924 common/serializers.py:630
msgid "Invalid model type specified for attachment"
msgstr ""
msgstr "Tipo de modelo no válido especificado para el archivo adjunto"
#: common/models.py:1945
msgid "Custom State"
@ -1827,11 +1827,11 @@ msgstr "Estados personalizados"
#: common/models.py:1951
msgid "Reference Status Set"
msgstr ""
msgstr "Conjunto de estado de referencia"
#: common/models.py:1952
msgid "Status set that is extended with this custom state"
msgstr ""
msgstr "Conjunto de estado extendido con este estado personalizado"
#: common/models.py:1956 generic/states/serializers.py:18
msgid "Logical Key"
@ -1839,7 +1839,7 @@ msgstr "Llave lógica"
#: common/models.py:1958
msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
msgstr "Clave lógica del estado que es igual a este estado personalizado en la lógica de negocios"
#: common/models.py:1963 common/models.py:2202 company/models.py:595
#: report/templates/report/inventree_test_report.html:104 stock/models.py:2740
@ -1848,7 +1848,7 @@ msgstr "Valor"
#: common/models.py:1964
msgid "Numerical value that will be saved in the models database"
msgstr ""
msgstr "Valor numérico que se guardará en la base de datos de modelos"
#: common/models.py:1970
msgid "Name of the state"
@ -1877,7 +1877,7 @@ msgstr "Modelo"
#: common/models.py:1997
msgid "Model this state is associated with"
msgstr ""
msgstr "Modelo con el que este estado está asociado"
#: common/models.py:2012
msgid "Model must be selected"
@ -1893,15 +1893,15 @@ msgstr "La clave lógica debe ser seleccionada"
#: common/models.py:2022
msgid "Key must be different from logical key"
msgstr ""
msgstr "La clave debe ser distinta de la clave lógica"
#: common/models.py:2029
msgid "Valid reference status class must be provided"
msgstr ""
msgstr "Debe proporcionarse una clase de estado de referencia válida"
#: common/models.py:2035
msgid "Key must be different from the logical keys of the reference status"
msgstr ""
msgstr "La clave debe ser distinta de las claves lógicas del estado de referencia"
#: common/models.py:2042
msgid "Logical key must be in the logical keys of the reference status"
@ -2060,37 +2060,37 @@ msgstr "Resultado"
msgid "Was the barcode scan successful?"
msgstr "¿El escaneo de código de barras fue exitoso?"
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nuevo {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Se ha creado un nuevo pedido y se le ha asignado"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} cancelado"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Artículos Recibidos"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Los artículos han sido recibidos contra una orden de compra"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Los artículos han sido recibidos contra una orden de devolución"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Error generado por el complemento"
@ -2823,11 +2823,11 @@ msgstr "Mostrar los artículos de stock instalados en las tablas de stock"
#: common/setting/system.py:692
msgid "Check BOM when installing items"
msgstr ""
msgstr "Revisar BOM al instalar artículos"
#: common/setting/system.py:694
msgid "Installed stock items must exist in the BOM for the parent part"
msgstr ""
msgstr "Los elementos de stock instalados deben existir en la BOM para la parte padre"
#: common/setting/system.py:700
msgid "Allow Out of Stock Transfer"
@ -4592,7 +4592,7 @@ msgstr "La cantidad debe ser 1 para el stock serializado"
msgid "Sales order does not match shipment"
msgstr "La orden de venta no coincide con el envío"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "El envío no coincide con el pedido de venta"
@ -4955,20 +4955,20 @@ msgstr "Reembolso"
msgid "Reject"
msgstr "Rechazo"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Orden de compra atrasada"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "La orden de compra {po} está atrasada"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Orden de venta atrasada"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "La orden de venta {so} está atrasada"
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Notificación por bajo stock"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "El stock disponible para {part.name} ha caído por debajo del nivel mínimo configurado"
@ -6316,83 +6316,83 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "El código de barras coincide con artículo existente"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr "No se ha encontrado ningún complemento para datos de código de barras"
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr "Ningún complemento coincide con el código de barras del proveedor"
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr "Ningún pedido de venta proporcionado"
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr "El complemento no está instalado"
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr "Instalación del complemento no encontrada"
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Complemento"
msgid "Method"
msgstr "Método"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "No se encontró autor"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "El complemento requiere al menos la versión {v}"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "El complemento requiere como máximo la versión {v}"

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Estonian\n"
"Language: et_EE\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr "Registreerimine on ajutiselt väljalülitatud."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Ei tohi tühi olla"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Tundmatu andmebaas"
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@ -69,21 +69,21 @@ msgstr "دامنه ایمیل ارائه شده تایید نشده است."
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "مقداری افزوده نشده"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است"
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@ -69,21 +69,21 @@ msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä."
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Arvoa ei annettu"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Annettu määrä on virheellinen"
@ -612,7 +612,7 @@ msgstr "Kuvien lataaminen ei ole käytössä"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Uusi {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-31 01:37\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@ -69,21 +69,21 @@ msgstr "Le domaine e-mail fourni n'est pas approuvé."
msgid "Registration is disabled."
msgstr "L'enregistrement est désactivé."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Unité fournie invalide ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Pas de valeur renseignée"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Impossible de convertir {original} en {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@ -612,7 +612,7 @@ msgstr "Le téléchargement des images depuis une URL distante n'est pas activé
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Base de données inconnue"
@ -2060,37 +2060,37 @@ msgstr "Résultat"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nouveau {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Une nouvelle commande a été créée et vous a été assignée"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} annulé"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Une commande qui vous est assignée a été annulée"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Articles reçus"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Des articles d'un bon de commande ont été reçus"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Erreur déclenchée par le plugin"
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr "Remboursement"
msgid "Reject"
msgstr "Refuser"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Notification de stock faible"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "Le stock disponible pour {part.name}, est tombé en dessous du niveau minimum configuré"
@ -6316,83 +6316,83 @@ msgstr "Aucune action spécifiée"
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Extension"
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "סופקה יחידה שלא קיימת ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "לא צוין ערך"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "לא פורטה הפעולה"
msgid "No matching action found"
msgstr "פעולה מבוקשת לא נמצאה"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Language: hi_IN\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@ -69,21 +69,21 @@ msgstr "A megadott email domain nincs jóváhagyva."
msgid "Registration is disabled."
msgstr "Regisztráció le van tiltva."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Érvénytelen mennyiségi egység ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nincs érték megadva"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "{original} átváltása {unit}-ra sikertelen"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Nem megfelelő mennyiség"
@ -612,7 +612,7 @@ msgstr "Képek letöltése távoli URL-ről nem engedélyezett"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Ismeretlen adatbázis"
@ -2061,37 +2061,37 @@ msgstr "Eredmény"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Új {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Egy új megrendelés létrehozva, és hozzád rendelve"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} megszakítva"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Egy hozzád rendelt megrendelés megszakítva"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Készlet érkezett"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Készlet érkezett egy beszerzési megrendeléshez"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Készlet érkezett vissza egy visszavétel miatt"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Plugin hiba"
@ -4593,7 +4593,7 @@ msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
msgid "Sales order does not match shipment"
msgstr "Vevői rendelés nem egyezik a szállítmánnyal"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Szállítmány nem egyezik a vevői rendeléssel"
@ -4956,20 +4956,20 @@ msgstr "Visszatérítés"
msgid "Reject"
msgstr "Elutasított"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Késésben lévő beszerzés"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "A {po} beszerzési rendelés most már késésben van"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Késésben lévő vevői rendelés"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "A {so} vevői rendelés most már késésben van"
@ -6296,11 +6296,11 @@ msgstr "Leltár riport rendelkezésre áll"
msgid "A new stocktake report is available for download"
msgstr "Egy új leltár riport készen áll a letöltésre"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Alacsony készlet értesítés"
#: part/tasks.py:39
#: part/tasks.py:40
#, 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"
@ -6317,83 +6317,83 @@ msgstr "Nincs megadva művelet"
msgid "No matching action found"
msgstr "Nincs egyező művelet"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Nincs egyező vonalkód"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Egyezés vonalkódra"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr "Model nem támogatott"
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr "Model példány hiányzik"
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Ez a vonalkód már egy másik tételé"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr "Nem található megfelelő alkatrész adat"
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr "Nem található megfelelő beszállítói alkatrész"
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr "Több beszállítói alkatrész található"
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr "Beszállítói alkatrész található"
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr "Ez a termék már bevételezve"
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr "Több egyező sortétel is található"
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr "Nincs egyező sortétel"
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Vonalkód nem egyezik egy létező készlet tétellel sem"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Készlet tétel nem egyezik a sortétellel"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Nincs elegendő"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Készlet tétel lefoglalva egy vevői rendeléshez"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr "Nincs elég információ"
@ -6761,52 +6761,52 @@ msgstr "TME vonalkódok támogatása"
msgid "The Supplier which acts as 'TME'"
msgstr "A 'TME' beszállító"
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr "Csak a személyzeti felhasználók adminisztrálhatják a pluginokat"
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr "Plugin telepítés letiltva"
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr "Plugin telepítése sikeres"
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin telepítve ide: {path}"
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr "Ez a plugin nem található a tárolóban"
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr "A plugin nem egy csomagolt plugin"
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr "Plugin csomag neve nem található"
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr "Plugin eltávolítás letiltva"
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin nem eltávolítható mivel még aktív"
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr "Plugin eltávolítása sikeres"
@ -6862,21 +6862,21 @@ msgstr "Bővítmény"
msgid "Method"
msgstr "Módszer"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Nincs szerző"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "A '{p}' plugin nem kompatibilis az aktuális applikáció verzióval {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "A pluginhoz minimum {v} verzió kell"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "A pluginhoz maximum {v} verzió kell"

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@ -69,21 +69,21 @@ msgstr "Domain surel yang diberikan tidak perbolehkan."
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nilai tidak tersedia"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Jumlah yang diberikan tidak valid"
@ -612,7 +612,7 @@ msgstr "Unduhan gambar dari URL external tidak aktif"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Barang diterima"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr "Tolak"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "Tidak ada tindakan yang ditentukan"
msgid "No matching action found"
msgstr "Aksi tidak ditemukan"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr "Tidak cukup informasi"
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@ -69,21 +69,21 @@ msgstr "L'indirizzo di posta elettronica fornito non è approvato."
msgid "Registration is disabled."
msgstr "La registrazione è disabilitata."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Unità fornita non valida ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nessun valore specificato"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Impossibile convertire {original} in {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
@ -612,7 +612,7 @@ msgstr "Il download delle immagini da URL remoto non è abilitato"
msgid "Failed to download image from remote URL"
msgstr "Impossibile scaricare l'immagine dall'URL remoto"
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Database sconosciuto"
@ -2060,37 +2060,37 @@ msgstr "Risultato"
msgid "Was the barcode scan successful?"
msgstr "La scansione del codice a barre è riuscita?"
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nuovo {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Un nuovo ordine è stato creato e assegnato a te"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Elemento ricevuto"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Gli elementi sono stati ricevuti a fronte di un ordine di acquisto"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Errore generato dal plugin"
@ -4592,7 +4592,7 @@ msgstr "La quantità deve essere 1 per l'elemento serializzato"
msgid "Sales order does not match shipment"
msgstr "L'ordine di vendita non corrisponde alla spedizione"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "La spedizione non corrisponde all'ordine di vendita"
@ -4955,20 +4955,20 @@ msgstr "Rimborso"
msgid "Reject"
msgstr "Rifiuta"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Ordine D'Acquisto in ritardo"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "L'ordine d'acquisto {po} è in ritardo"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Ordini Di Vendita in ritardo"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "L'ordine di vendita {so} è ora in ritardo"
@ -6295,11 +6295,11 @@ msgstr "Report Inventario Disponibile"
msgid "A new stocktake report is available for download"
msgstr "Un nuovo report di inventario è disponibile per il download"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Notifica di magazzino bassa"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "Lo stock disponibile per {part.name} è sceso sotto il livello minimo configurato"
@ -6316,83 +6316,83 @@ msgstr "Nessuna azione specificata"
msgid "No matching action found"
msgstr "Nessuna azione corrispondente trovata"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Il codice a barre corrisponde a un elemento esistente"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr "Nessuna plugin corrispondente trovato per i dati del codice a barre"
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr "Nessun ordine di vendita fornito"
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Scorte insufficienti disponibili"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr "Metodo"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Nessun autore trovato"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

File diff suppressed because it is too large Load Diff

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-28 21:49\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-28 21:49\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Language: lt_LT\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Language: lv_LV\n"
@ -69,21 +69,21 @@ msgstr "Norādītais e-pasta domēns nav apstiprināts."
msgid "Registration is disabled."
msgstr "Reģistrācija ir izslēgta."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Norādīta nederīga vienība ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nav norādīta vērtība"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Nevarēja konvertēt {original} par {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Norādītais daudzums nav derīgs"
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@ -69,21 +69,21 @@ msgstr "Het ingevoerde e-maildomein is niet goedgekeurd."
msgid "Registration is disabled."
msgstr "Registratie is uitgeschakeld."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Ongeldige eenheid opgegeven ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Geen waarde opgegeven"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "{original} kon niet worden omgezet naar {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveelheid ingevoerd"
@ -612,7 +612,7 @@ msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
msgid "Failed to download image from remote URL"
msgstr "Fout bij het downloaden van afbeelding van externe URL"
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Onbekende database"
@ -2060,37 +2060,37 @@ msgstr "Resultaat"
msgid "Was the barcode scan successful?"
msgstr "Was de barcode succesvol gescand?"
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nieuw: {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Een nieuwe order is aangemaakt en aan u toegewezen"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Artikelen zijn ontvangen tegen een inkooporder"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel"
msgid "Sales order does not match shipment"
msgstr "Verkooporder komt niet overeen met zending"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Verzending komt niet overeen met verkooporder"
@ -4955,20 +4955,20 @@ msgstr "Restitutie"
msgid "Reject"
msgstr "Afwijzen"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Achterstallige inkooporder"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Inkooporder {po} is nu achterstallig"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Achterstallige Verkooporder"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Verkooporder {so} is nu achterstallig"
@ -6295,11 +6295,11 @@ msgstr "Voorraadcontrole rapport beschikbaar"
msgid "A new stocktake report is available for download"
msgstr "Een nieuwe voorraadrapportage is beschikbaar voor download"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Lage voorraad melding"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "De beschikbare voorraad voor {part.name} is onder het ingestelde minimumniveau gedaald"
@ -6316,83 +6316,83 @@ msgstr "Geen actie gespecificeerd"
msgid "No matching action found"
msgstr "Geen overeenkomende actie gevonden"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor streepjescodegegevens"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor streepjescodegegevens"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr "Geen overeenkomende plug-in gevonden voor barcode gegevens"
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr "Geen verkooporder opgegeven"
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Streepjescode komt niet overeen met een bestaand voorraadartikel"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Voorraad item komt niet overeen met regelitem"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Onvoldoende voorraad beschikbaar"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Voorraad item toegewezen aan verkooporder"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@ -69,21 +69,21 @@ msgstr "Det oppgitte e-postdomenet er ikke godkjent."
msgid "Registration is disabled."
msgstr "Registrering er deaktivert."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Ugyldig enhet angitt ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Ingen verdi angitt"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Kunne ikke konvertere {original} til {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
@ -612,7 +612,7 @@ msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Ukjent database"
@ -2060,37 +2060,37 @@ msgstr "Resultat"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Ny {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "En ny ordre har blitt opprettet og tilordnet til deg"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} kansellert"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "En ordre som er tildelt til deg ble kansellert"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Artikler mottatt"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Artikler har blitt mottatt mot en innkjøpsordre"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Artikler har blitt mottatt mot en returordre"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Feil oppstått i utvidelse"
@ -4592,7 +4592,7 @@ msgstr "Antall må være 1 for serialisert lagervare"
msgid "Sales order does not match shipment"
msgstr "Salgsordre samsvarer ikke med forsendelse"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Forsendelsen samsvarer ikke med salgsordre"
@ -4955,20 +4955,20 @@ msgstr "Refusjon"
msgid "Reject"
msgstr "Avvis"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Forfalt Innkjøpsordre"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Innkjøpsordre {po} er nå forfalt"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Forfalt Salgsordre"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Salgsordre {so} er nå forfalt"
@ -6295,11 +6295,11 @@ msgstr "Lagertellingsrapport tilgjengelig"
msgid "A new stocktake report is available for download"
msgstr "En ny lagertellingsrapport er tilgjengelig for nedlasting"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Varsel om lav lagerbeholdning"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "Tilgjengelig lagerbeholdning for {part.name} har falt under det konfigurerte minimumsnivået"
@ -6316,83 +6316,83 @@ msgstr "Ingen handling spesifisert"
msgid "No matching action found"
msgstr "Ingen samsvarende handling funnet"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Strekkode samsvarer med ekisterende element"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr "Ingen samsvarende del-data funnet"
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr "Finner ingen matchende leverandørdeler"
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr "Flere samsvarende leverandørdeler funnet"
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr "Fant leverandørdel"
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr "Artikkelen er allerede mottatt"
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr "Flere samsvarende elementer funnet"
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr "Ingen samsvarende element funnet"
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Strekkoden samsvarer ikke med eksisterende lagervare"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Lagervare samsvarer ikke med linjeelement"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Utilstrekkelig lagerbeholdning"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Lagervaren er tildelt en salgsordre"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr "Ikke nok informasjon"
@ -6760,52 +6760,52 @@ msgstr "Gir støtte for å skanne TME-strekkoder"
msgid "The Supplier which acts as 'TME'"
msgstr "Leverandøren som fungerer som \"TME\""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr "Installasjon av utvidelse vellykket"
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Installerte utvidelsen til {path}"
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Utvidelse"
msgid "Method"
msgstr "Metode"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Ingen forfatter funnet"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Utvidensen '{p}' er ikke kompatibel med nåværende InvenTree-versjon {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Utvidelsen krever minst versjon {v}"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Utvidelsen krever maks versjon {v}"

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@ -69,21 +69,21 @@ msgstr "Podany e-mail domeny nie został zatwierdzony."
msgid "Registration is disabled."
msgstr "Rejestracja jest wyłączona."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Nieprawidłowa jednostka ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nie podano wartości"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Nie udało się przeliczyć {original} na {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@ -612,7 +612,7 @@ msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Nieznana baza danych"
@ -2060,37 +2060,37 @@ msgstr "Wynik"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr "Zwrot pieniędzy"
msgid "Reject"
msgstr "Odrzuć"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Zaległe zlecenie zakupu"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Zlecenie zakupu {po} jest teraz zaległe"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "Nie określono działania"
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Nie znaleziono wyników dla danych kodu kreskowego"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Znaleziono wyniki dla danych kodu kreskowego"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Kod kreskowy pasuje do istniejącego elementu"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Kod kreskowy nie pasuje do istniejących pozycji magazynowych"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Wtyczka"
msgid "Method"
msgstr "Metoda"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Nie znaleziono autora"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@ -69,21 +69,21 @@ msgstr "O domínio de e-mail providenciado não foi aprovado."
msgid "Registration is disabled."
msgstr "Cadastro está desativado."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Unidade inválida fornecida ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nenhum valor fornecido"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Não foi possível converter {original} para {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Quantidade fornecida inválida"
@ -612,7 +612,7 @@ msgstr "Baixar imagens de URL remota não está habilitado"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Banco de dados desconhecido"
@ -2060,37 +2060,37 @@ msgstr "Resultado"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Novo {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Um novo pedido foi criado e atribuído a você"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} cancelado"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Um pedido atribuído a você foi cancelado"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Itens Recebidos"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Os itens de um pedido de compra foram recebidos"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Os itens de um pedido de devolução foram recebidos"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Erro criado pela extensão"
@ -4592,7 +4592,7 @@ msgstr "Quantidade deve ser 1 para item de estoque serializado"
msgid "Sales order does not match shipment"
msgstr "Pedidos de venda não coincidem com a remessa"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Remessa não coincide com pedido de venda"
@ -4955,20 +4955,20 @@ msgstr "Reembolsar"
msgid "Reject"
msgstr "Recusar"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Pedido de compra vencido"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Pedido de compra {po} está atrasada"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Pedido de venda vencido"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Pedido de venda {so} está atrasada"
@ -6295,11 +6295,11 @@ msgstr "Balanço de Estoque Disponível"
msgid "A new stocktake report is available for download"
msgstr "Um novo relatório de balanço do estoque está disponível para baixar"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Notificação de estoque baixo"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "O estoque disponível para {part.name} caiu abaixo do nível mínimo definido"
@ -6316,83 +6316,83 @@ msgstr "Nenhuma ação especificada"
msgid "No matching action found"
msgstr "Nenhuma ação correspondente encontrada"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Nenhum resultado encontrado para os dados do código de barras"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Coincidência encontrada para dados de código de barras"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Código de barras corresponde ao item existente"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr "Nenhuma informação de peça correspondente encontrada"
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr "Nenhuma peça de fornecedor correspondente encontrada"
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr "Múltiplas peças de fornecedores correspondentes encontradas"
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr "Peça de fornecedor correspondente"
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr "Item do pedido já foi recebido"
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr "Diversos itens de linha correspondentes encontrados"
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr "Nenhum item de linha correspondente encontrado"
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Código de barras não corresponde a item de estoque válido"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Item do estoque não corresponde ao item de linha"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Estoque insuficiente disponível"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Item de estoque atribuído para pedido de venda"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr "Não há informação suficiente"
@ -6760,52 +6760,52 @@ msgstr "Fornece suporte para escanear códigos de barras TME"
msgid "The Supplier which acts as 'TME'"
msgstr "O fornecedor que atua como 'TME'"
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr "Plugin instalado com sucesso"
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin instalado na {path}"
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Extensões"
msgid "Method"
msgstr "Método"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Nenhum autor encontrado"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "A extensão '{p}' não é compatível com a versão atual do InvenTree {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Extensão requer pelo menos a versão {v}"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Extensão requer no máximo a versão {v}"

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr "Falha ao baixar a imagem da URL remota"
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-28 21:49\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@ -69,21 +69,21 @@ msgstr "Указанный домен электронной почты не у
msgid "Registration is disabled."
msgstr "Регистрация отключена."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Предоставлено недопустимое значение ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Значение не указано"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Невозможно преобразовать {original} в {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@ -612,7 +612,7 @@ msgstr "Загрузка изображений с удаленного URL-ад
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Неизвестная база данных"
@ -2060,37 +2060,37 @@ msgstr "Результат"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Полученные элементы"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr "Количество должно быть 1 для сериализир
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr "Возврат"
msgid "Reject"
msgstr "Отклонить"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Просроченные заказы на закупку"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Просроченные заказы на продажу"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "Действие не указано"
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr "Штрих-код не соответствует существующим складским позициям"
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr "Складская позиция не соответствует позиции"
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr "Складская позиция зарезервирована заказом на продажу"
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Плагин"
msgid "Method"
msgstr "Метод"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Автор не найден"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-28 21:49\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Language: sk_SK\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr ""
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@ -69,21 +69,21 @@ msgstr "Domena epošte ni podprta."
msgid "Registration is disabled."
msgstr "Registracija je onemogočena."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Vnesena napačna enota ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Vrednost ni vnesena"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Ni mogoče pretvoriti {original} v {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Podana napačna količina"
@ -612,7 +612,7 @@ msgstr "Prenos slik iz oddaljene povezave ni omogočen"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Neznana podatkovna baza"
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"Language: sr_CS\n"
@ -69,21 +69,21 @@ msgstr "Navedeni domen adrese e-pošte nije prihvaćen."
msgid "Registration is disabled."
msgstr "Registracija je onemogućena."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Nije navedena vrednost"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Nije moguće konvertovati {original} u {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Isporučena nevažeća količina"
@ -612,7 +612,7 @@ msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:03\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@ -69,21 +69,21 @@ msgstr "Den angivna e-postdomänen är inte godkänd."
msgid "Registration is disabled."
msgstr "Registrering är stängd."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Ogiltig enhet angiven ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Inget värde angivet"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Kunde inte konvertera {original} till {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
@ -612,7 +612,7 @@ msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Okänd databas"
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr "Återbetala"
msgid "Reject"
msgstr "Avvisa"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "Ingen åtgärd specificerad"
msgid "No matching action found"
msgstr "Ingen matchande åtgärd hittades"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:04\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@ -69,21 +69,21 @@ msgstr ""
msgid "Registration is disabled."
msgstr ""
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr ""
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "ปริมาณสินค้าไม่ถูกต้อง"
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:04\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@ -69,21 +69,21 @@ msgstr "Sağlanan e-posta alanı onaylanmadı."
msgid "Registration is disabled."
msgstr "Kayıt devre dışı."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Geçersiz ürün girildi ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Değer verilmemiş"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "{original} birimi {unit} birimine dönüştürülemedi"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@ -612,7 +612,7 @@ msgstr "Uzak URL'den resim indirmek etkinleştirilmedi"
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Bilinmeyen veritabanı"
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Yeni {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} iptal edildi"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Size atanmış bir emir iptal edildi"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Alınan Ürünler"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr "İşlem belirtilmedi"
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:04\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@ -69,21 +69,21 @@ msgstr "Наданий домен електронної пошти не зат
msgid "Registration is disabled."
msgstr "Реєстрацію вимкнено."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr ""
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Значення не вказане"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Не вдалося перетворити {original} на {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Невірна кількість"
@ -612,7 +612,7 @@ msgstr ""
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr ""
@ -2060,37 +2060,37 @@ msgstr ""
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr ""
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr ""
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr ""
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr ""
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr ""
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr ""
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr ""
@ -4592,7 +4592,7 @@ msgstr ""
msgid "Sales order does not match shipment"
msgstr ""
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr ""
@ -4955,20 +4955,20 @@ msgstr ""
msgid "Reject"
msgstr ""
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr ""
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr ""
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr ""
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr ""
@ -6295,11 +6295,11 @@ msgstr ""
msgid "A new stocktake report is available for download"
msgstr ""
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr ""
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr ""
@ -6316,83 +6316,83 @@ msgstr ""
msgid "No matching action found"
msgstr ""
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr ""
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr ""
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr ""
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr ""
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr ""
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr ""
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr ""
@ -6760,52 +6760,52 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr ""
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr ""
msgid "Method"
msgstr ""
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr ""
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-28 21:46+0000\n"
"PO-Revision-Date: 2024-12-29 06:04\n"
"POT-Creation-Date: 2025-01-05 01:50+0000\n"
"PO-Revision-Date: 2025-01-05 01:53\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@ -69,21 +69,21 @@ msgstr "Miền email được cung cấp không được phê duyệt."
msgid "Registration is disabled."
msgstr "Đăng ký bị vô hiệu hóa."
#: InvenTree/conversion.py:161
#: InvenTree/conversion.py:162
#, python-brace-format
msgid "Invalid unit provided ({unit})"
msgstr "Đơn vị không hợp lệ ({unit})"
#: InvenTree/conversion.py:178
#: InvenTree/conversion.py:179
msgid "No value provided"
msgstr "Chưa cung cấp giá trị"
#: InvenTree/conversion.py:205
#: InvenTree/conversion.py:206
#, python-brace-format
msgid "Could not convert {original} to {unit}"
msgstr "Không thể chuyển đổi {original} sang {unit}"
#: InvenTree/conversion.py:207 InvenTree/conversion.py:221
#: InvenTree/conversion.py:208 InvenTree/conversion.py:222
#: InvenTree/helpers.py:504 order/models.py:592 order/models.py:836
msgid "Invalid quantity provided"
msgstr "Số lượng cung cấp không hợp lệ"
@ -612,7 +612,7 @@ msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bậ
msgid "Failed to download image from remote URL"
msgstr ""
#: InvenTree/templatetags/inventree_extras.py:152
#: InvenTree/templatetags/inventree_extras.py:153
msgid "Unknown database"
msgstr "Không rõ cơ sở dữ liệu"
@ -2060,37 +2060,37 @@ msgstr "Kết quả"
msgid "Was the barcode scan successful?"
msgstr ""
#: common/notifications.py:329
#: common/notifications.py:330
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Mới {verbose_name}"
#: common/notifications.py:331
#: common/notifications.py:332
msgid "A new order has been created and assigned to you"
msgstr "Một đơn đặt hàng mới đã được tạo và phân công cho bạn"
#: common/notifications.py:337
#: common/notifications.py:338
#, python-brace-format
msgid "{verbose_name} canceled"
msgstr "{verbose_name} đã bị hủy"
#: common/notifications.py:339
#: common/notifications.py:340
msgid "A order that is assigned to you was canceled"
msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ"
#: common/notifications.py:345 common/notifications.py:352 order/api.py:476
#: common/notifications.py:346 common/notifications.py:353 order/api.py:476
msgid "Items Received"
msgstr "Mục đã nhận"
#: common/notifications.py:347
#: common/notifications.py:348
msgid "Items have been received against a purchase order"
msgstr "Hàng đã được nhận theo đơn đặt mua"
#: common/notifications.py:354
#: common/notifications.py:355
msgid "Items have been received against a return order"
msgstr "Hàng đã nhận theo đơn hàng trả lại"
#: common/notifications.py:476
#: common/notifications.py:477
msgid "Error raised by plugin"
msgstr "Lỗi được thông báo bởi phần mở rộng"
@ -4592,7 +4592,7 @@ msgstr "Số lượng phải là 1 cho hàng hóa sêri"
msgid "Sales order does not match shipment"
msgstr "Đơn bán hàng không phù hợp với vận đơn"
#: order/models.py:2076 plugin/base/barcodes/api.py:652
#: order/models.py:2076 plugin/base/barcodes/api.py:651
msgid "Shipment does not match sales order"
msgstr "Vận đơn không phù hợp với đơn bán hàng"
@ -4955,20 +4955,20 @@ msgstr "Hoàn tiền"
msgid "Reject"
msgstr "Từ chối"
#: order/tasks.py:31
#: order/tasks.py:32
msgid "Overdue Purchase Order"
msgstr "Đơn đặt mua quá hạn"
#: order/tasks.py:36
#: order/tasks.py:37
#, python-brace-format
msgid "Purchase order {po} is now overdue"
msgstr "Đơn đặt mua {po} quá hạn"
#: order/tasks.py:81
#: order/tasks.py:82
msgid "Overdue Sales Order"
msgstr "Đơn bán hàng quá hạn"
#: order/tasks.py:86
#: order/tasks.py:87
#, python-brace-format
msgid "Sales order {so} is now overdue"
msgstr "Đơn bán hàng {so} đã quá hạn"
@ -6295,11 +6295,11 @@ msgstr "Báo cáo kiểm kê có sẵn"
msgid "A new stocktake report is available for download"
msgstr "Có sẵn một báo cáo kiểm kê mới để tải về"
#: part/tasks.py:37
#: part/tasks.py:38
msgid "Low stock notification"
msgstr "Thông báo sắp hết hàng"
#: part/tasks.py:39
#: part/tasks.py:40
#, python-brace-format
msgid "The available stock for {part.name} has fallen below the configured minimum level"
msgstr "Kho có sẵn cho {part.name} đã mất dưới mức cấu hình tối thiểu"
@ -6316,83 +6316,83 @@ msgstr "Chưa chỉ ra hành động cụ thể"
msgid "No matching action found"
msgstr "Không tìm thấy chức năng phù hợp"
#: plugin/base/barcodes/api.py:211
#: plugin/base/barcodes/api.py:210
msgid "No match found for barcode data"
msgstr "Không tìm thấy dữ liệu mã vạch phù hợp"
#: plugin/base/barcodes/api.py:215
#: plugin/base/barcodes/api.py:214
msgid "Match found for barcode data"
msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp"
#: plugin/base/barcodes/api.py:253 plugin/base/barcodes/serializers.py:73
#: plugin/base/barcodes/api.py:252 plugin/base/barcodes/serializers.py:73
msgid "Model is not supported"
msgstr ""
#: plugin/base/barcodes/api.py:258
#: plugin/base/barcodes/api.py:257
msgid "Model instance not found"
msgstr ""
#: plugin/base/barcodes/api.py:287
#: plugin/base/barcodes/api.py:286
msgid "Barcode matches existing item"
msgstr "Mã vạch phù hợp với hàng hóa hiện có"
#: plugin/base/barcodes/api.py:428
#: plugin/base/barcodes/api.py:427
msgid "No matching part data found"
msgstr "Không tìm thấy thông tin sản phẩm phù hợp"
#: plugin/base/barcodes/api.py:444
#: plugin/base/barcodes/api.py:443
msgid "No matching supplier parts found"
msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp"
#: plugin/base/barcodes/api.py:447
#: plugin/base/barcodes/api.py:446
msgid "Multiple matching supplier parts found"
msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp"
#: plugin/base/barcodes/api.py:460 plugin/base/barcodes/api.py:687
#: plugin/base/barcodes/api.py:459 plugin/base/barcodes/api.py:686
msgid "No matching plugin found for barcode data"
msgstr ""
#: plugin/base/barcodes/api.py:470
#: plugin/base/barcodes/api.py:469
msgid "Matched supplier part"
msgstr "Sản phẩm nhà cung cấp phù hợp"
#: plugin/base/barcodes/api.py:538
#: plugin/base/barcodes/api.py:537
msgid "Item has already been received"
msgstr "Hàng hóa này đã được nhận"
#: plugin/base/barcodes/api.py:586
#: plugin/base/barcodes/api.py:585
msgid "No plugin match for supplier barcode"
msgstr ""
#: plugin/base/barcodes/api.py:635
#: plugin/base/barcodes/api.py:634
msgid "Multiple matching line items found"
msgstr ""
#: plugin/base/barcodes/api.py:638
#: plugin/base/barcodes/api.py:637
msgid "No matching line item found"
msgstr ""
#: plugin/base/barcodes/api.py:684
#: plugin/base/barcodes/api.py:683
msgid "No sales order provided"
msgstr ""
#: plugin/base/barcodes/api.py:693
#: plugin/base/barcodes/api.py:692
msgid "Barcode does not match an existing stock item"
msgstr ""
#: plugin/base/barcodes/api.py:709
#: plugin/base/barcodes/api.py:708
msgid "Stock item does not match line item"
msgstr ""
#: plugin/base/barcodes/api.py:739
#: plugin/base/barcodes/api.py:738
msgid "Insufficient stock available"
msgstr "Kho không đủ hạn mức khả dụng"
#: plugin/base/barcodes/api.py:752
#: plugin/base/barcodes/api.py:751
msgid "Stock item allocated to sales order"
msgstr ""
#: plugin/base/barcodes/api.py:755
#: plugin/base/barcodes/api.py:754
msgid "Not enough information"
msgstr "Không đủ thông tin"
@ -6760,52 +6760,52 @@ msgstr "Cung cấp khả năng quét mã vạch TME"
msgid "The Supplier which acts as 'TME'"
msgstr "Nhà cung cấp hoạt động như 'TME'"
#: plugin/installer.py:228 plugin/installer.py:306
#: plugin/installer.py:229 plugin/installer.py:307
msgid "Only staff users can administer plugins"
msgstr ""
#: plugin/installer.py:231
#: plugin/installer.py:232
msgid "Plugin installation is disabled"
msgstr ""
#: plugin/installer.py:268
#: plugin/installer.py:269
msgid "Installed plugin successfully"
msgstr "Cài đặt phần mở rộng thành công"
#: plugin/installer.py:273
#: plugin/installer.py:274
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Cài đặt phần bổ sung đến {path}"
#: plugin/installer.py:297
#: plugin/installer.py:298
msgid "Plugin was not found in registry"
msgstr ""
#: plugin/installer.py:300
#: plugin/installer.py:301
msgid "Plugin is not a packaged plugin"
msgstr ""
#: plugin/installer.py:303
#: plugin/installer.py:304
msgid "Plugin package name not found"
msgstr ""
#: plugin/installer.py:323
#: plugin/installer.py:324
msgid "Plugin uninstalling is disabled"
msgstr ""
#: plugin/installer.py:327
#: plugin/installer.py:328
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
#: plugin/installer.py:331
#: plugin/installer.py:332
msgid "Plugin is not installed"
msgstr ""
#: plugin/installer.py:347
#: plugin/installer.py:348
msgid "Plugin installation not found"
msgstr ""
#: plugin/installer.py:362
#: plugin/installer.py:363
msgid "Uninstalled plugin successfully"
msgstr ""
@ -6861,21 +6861,21 @@ msgstr "Phần bổ sung"
msgid "Method"
msgstr "Phương thức"
#: plugin/plugin.py:275
#: plugin/plugin.py:276
msgid "No author found"
msgstr "Không tìm thấy tác giả"
#: plugin/registry.py:538
#: plugin/registry.py:539
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Phần bổ sung '{p}' không tương thích với phiên bản InvenTree hiện tại {v}"
#: plugin/registry.py:541
#: plugin/registry.py:542
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Phần bổ sung yêu cầu ít nhất phiên bản {v}"
#: plugin/registry.py:543
#: plugin/registry.py:544
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Phần bổ sung yêu cầu tối đa phiên bản {v}"

Some files were not shown because too many files have changed in this diff Show More